Skip to content

Commit

Permalink
Rename and adapt some imports for Plone6
Browse files Browse the repository at this point in the history
  • Loading branch information
boulch committed Apr 27, 2021
1 parent eec172a commit 7a0a282
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 30 deletions.
2 changes: 1 addition & 1 deletion src/collective/messagesviewlet/__init__.py
Expand Up @@ -9,7 +9,7 @@

_ = MessageFactory('collective.messagesviewlet')

HAS_PLONE_5 = api.env.plone_version().startswith('5')
HAS_PLONE_5_AND_MORE = api.env.plone_version().startswith('5') or api.env.plone_version().startswith('6')

try:
api.env.get_distribution('plone.app.event')
Expand Down
4 changes: 2 additions & 2 deletions src/collective/messagesviewlet/browser/messagesviewlet.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-

from collective.messagesviewlet import HAS_PLONE_5
from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from collective.messagesviewlet.utils import get_messages_to_show
from plone.app.layout.viewlets import common
from plone.registry.interfaces import IRegistry
Expand All @@ -12,7 +12,7 @@ class MessagesViewletBase(common.ViewletBase):
location_filter = []

def is_plone_5(self):
return HAS_PLONE_5
return HAS_PLONE_5_AND_MORE

def getAllMessages(self):
messages = get_messages_to_show(self.context)
Expand Down
10 changes: 5 additions & 5 deletions src/collective/messagesviewlet/message.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from collective.messagesviewlet import _
from collective.messagesviewlet import HAS_PAE
from collective.messagesviewlet import HAS_PLONE_5
from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from DateTime import DateTime
from plone import api
from plone.app.layout.navigation.interfaces import INavigationRoot
Expand All @@ -28,7 +28,7 @@
from plone.app.event.base import default_timezone
from plone.app.event.base import localized_now

if not HAS_PLONE_5:
if not HAS_PLONE_5_AND_MORE:
from plone.formwidget.datetime.z3cform.widget import DatetimeFieldWidget as dtfw4


Expand Down Expand Up @@ -102,7 +102,7 @@ class IMessage(model.Schema):
description=_(u"Specify start date message appearance"),
defaultFactory=default_start,
)
if HAS_PLONE_5:
if HAS_PLONE_5_AND_MORE:
form.widget("start", dtfw5, default_timezone=default_timezone)
else:
form.widget("start", dtfw4)
Expand All @@ -115,7 +115,7 @@ class IMessage(model.Schema):
"If you pick a date, <span class=warning-formHelp>dont't forget hours !</span>"
),
)
if HAS_PLONE_5:
if HAS_PLONE_5_AND_MORE:
form.widget("end", dtfw5, default_timezone=default_timezone)
else:
form.widget("end", dtfw4)
Expand Down Expand Up @@ -154,7 +154,7 @@ def validateStartEnd(data):
def add_timezone(dt, force=False):
if HAS_PAE:
TZ = default_timezone(as_tzinfo=True)
if force or (not HAS_PLONE_5 and not dt.tzinfo):
if force or (not HAS_PLONE_5_AND_MORE and not dt.tzinfo):
return TZ.localize(dt)
return dt

Expand Down
6 changes: 6 additions & 0 deletions src/collective/messagesviewlet/profiles/testing/metadata.xml
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<metadata>
<dependencies>
<dependency>profile-collective.messagesviewlet:default</dependency>
</dependencies>
</metadata>
4 changes: 2 additions & 2 deletions src/collective/messagesviewlet/setuphandlers.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-

from collective.messagesviewlet import HAS_PLONE_5
from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from plone import api
from plone.app.dexterity.behaviors.exclfromnav import IExcludeFromNavigation
from Products.CMFPlone import interfaces as Plone
Expand Down Expand Up @@ -43,7 +43,7 @@ def add_default_messages(context):
if context.readDataFile('collectivemessagesviewlet_messages.txt') is None:
return
resource = 'resource'
if HAS_PLONE_5:
if HAS_PLONE_5_AND_MORE:
resource = 'plone'
site = api.portal.get()
add_message('maintenance-soon', _('maintenance_soon_tit', context=site), _('maintenance_soon_txt', context=site),
Expand Down
14 changes: 7 additions & 7 deletions src/collective/messagesviewlet/testing.py
@@ -1,19 +1,17 @@
# -*- coding: utf-8 -*-
from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from plone import api
from plone.app.contenttypes.testing import PLONE_APP_CONTENTTYPES_FIXTURE
from plone.app.robotframework.testing import REMOTE_LIBRARY_BUNDLE_FIXTURE
from plone.app.testing import applyProfile
from plone.app.testing import FunctionalTesting
from plone.app.testing import IntegrationTesting
from plone.app.contenttypes.testing import PLONE_APP_CONTENTTYPES_FIXTURE
from plone.app.testing import PloneSandboxLayer
from plone.testing import z2

import collective.messagesviewlet


IS_PLONE_5 = api.env.plone_version().startswith('5')


class CollectiveMessagesviewletLayer(PloneSandboxLayer):

defaultBases = (PLONE_APP_CONTENTTYPES_FIXTURE,)
Expand All @@ -22,9 +20,11 @@ def setUpZope(self, app, configurationContext):
self.loadZCML(package=collective.messagesviewlet, name='testing.zcml')

def setUpPloneSite(self, portal):
installer = portal['portal_quickinstaller']
installer.installProduct('collective.messagesviewlet')
applyProfile(portal, 'collective.messagesviewlet:default')
if not HAS_PLONE_5_AND_MORE:
installer = portal['portal_quickinstaller']
installer.installProduct('collective.messagesviewlet')
else:
applyProfile(portal, 'collective.messagesviewlet:testing')
api.user.create(email='test@imio.be', username='test')
api.user.grant_roles(username='test', roles=['Site Administrator'])

Expand Down
9 changes: 4 additions & 5 deletions src/collective/messagesviewlet/tests/test_message.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-

from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from collective.messagesviewlet.browser.messagesviewlet import GlobalMessagesViewlet
from collective.messagesviewlet.message import add_timezone
from collective.messagesviewlet.message import IMessage
Expand All @@ -8,7 +9,6 @@
from collective.messagesviewlet.testing import (
COLLECTIVE_MESSAGESVIEWLET_INTEGRATION_TESTING,
) # noqa
from collective.messagesviewlet.testing import IS_PLONE_5
from collective.messagesviewlet.utils import add_message
from dateutil.relativedelta import relativedelta
from datetime import datetime
Expand Down Expand Up @@ -63,7 +63,6 @@ def setUp(self):
# The products build the "special" folder "messages-config" to store messages.
self.message_config_folder = self.portal["messages-config"]
setRoles(self.portal, TEST_USER_ID, ["Manager"])
self.installer = api.portal.get_tool("portal_quickinstaller")
self.wftool = self.portal.portal_workflow
self.messages = []
# Create some messages
Expand Down Expand Up @@ -113,7 +112,7 @@ def setUp(self):
self.messages.append(message)

def tearDown(self):
self._changeUser("admin")
self._changeUser("test")
api.content.delete(obj=self.another_folder)
messages = api.content.find(
context=self.message_config_folder, portal_type="Message"
Expand Down Expand Up @@ -264,7 +263,7 @@ def test_viewlet_rendering(self):
"""
viewlet = self.get_global_viewlet(self.portal)
self.assertIn(self.messages[0].text.output, viewlet.render())
if not IS_PLONE_5:
if not HAS_PLONE_5_AND_MORE:
self.assertIn("messagesviewlet-info", viewlet.render())
else:
self.assertIn("portalMessage info", viewlet.render())
Expand Down Expand Up @@ -364,7 +363,7 @@ def test_local_messages_location(self):
# To get this location message (justhere), we must be in a folder
context = self.portal["myfolder"]
locations = [term.token for term in location(context)._terms]
self.assertEquals(locations, ["justhere", "fromhere"])
self.assertEqual(locations, ["justhere", "fromhere"])

def test_local_messages_viewlet_render(self):
api.portal.set_registry_record("messagesviewlet.authorize_local_message", True)
Expand Down
27 changes: 22 additions & 5 deletions src/collective/messagesviewlet/tests/test_setup.py
@@ -1,8 +1,12 @@
# -*- coding: utf-8 -*-
"""Setup tests for this package."""
from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from collective.messagesviewlet.testing import COLLECTIVE_MESSAGESVIEWLET_INTEGRATION_TESTING # noqa
from plone import api

if HAS_PLONE_5_AND_MORE:
from Products.CMFPlone.utils import get_installer

import unittest


Expand All @@ -14,11 +18,17 @@ class TestSetup(unittest.TestCase):
def setUp(self):
"""Custom shared utility setup for tests."""
self.portal = self.layer['portal']
self.installer = api.portal.get_tool('portal_quickinstaller')
if not HAS_PLONE_5_AND_MORE:
self.installer = api.portal.get_tool('portal_quickinstaller')
else:
self.installer = get_installer(self.portal, self.layer["request"])

def test_product_installed(self):
"""Test if collective.messagesviewlet is installed with portal_quickinstaller."""
self.assertTrue(self.installer.isProductInstalled('collective.messagesviewlet'))
if not HAS_PLONE_5_AND_MORE:
self.assertTrue(self.installer.isProductInstalled('collective.messagesviewlet'))
else:
self.assertTrue(self.installer.is_product_installed('collective.messagesviewlet'))

def test_browserlayer(self):
"""Test that ICollectiveMessagesviewletLayer is registered."""
Expand All @@ -33,9 +43,16 @@ class TestUninstall(unittest.TestCase):

def setUp(self):
self.portal = self.layer['portal']
self.installer = api.portal.get_tool('portal_quickinstaller')
self.installer.uninstallProducts(['collective.messagesviewlet'])
if not HAS_PLONE_5_AND_MORE:
self.installer = api.portal.get_tool('portal_quickinstaller')
self.installer.uninstallProducts(['collective.messagesviewlet'])
else:
self.installer = get_installer(self.portal, self.layer["request"])
self.installer.uninstall_product('collective.messagesviewlet')

def test_product_uninstalled(self):
"""Test if collective.messagesviewlet is cleanly uninstalled."""
self.assertFalse(self.installer.isProductInstalled('collective.messagesviewlet'))
if not HAS_PLONE_5_AND_MORE:
self.assertFalse(self.installer.isProductInstalled('collective.messagesviewlet'))
else:
self.assertFalse(self.installer.is_product_installed('collective.messagesviewlet'))
9 changes: 6 additions & 3 deletions src/collective/messagesviewlet/utils.py
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-

from collective.behavior.talcondition.behavior import ITALCondition
from collective.messagesviewlet import HAS_PLONE_5
from collective.messagesviewlet import HAS_PLONE_5_AND_MORE
from collective.messagesviewlet.message import add_timezone
from collective.messagesviewlet.message import generate_uid
from datetime import datetime
from plone import api
from plone.app.layout.navigation.defaultpage import isDefaultPage
try:
from plone.app.layout.navigation.defaultpage import isDefaultPage
except ImportError as error:
from Products.CMFPlone.defaultpage import is_default_page as isDefaultPage
from plone.app.layout.navigation.interfaces import INavigationRoot
from plone.app.textfield.value import RichTextValue
from six import text_type
Expand Down Expand Up @@ -45,7 +48,7 @@ def add_message(id, title, text, msg_type='info', can_hide=False, start=datetime
return None
rich_text = _richtextval(text)
# Add TZ when using Plone5
if HAS_PLONE_5:
if HAS_PLONE_5_AND_MORE:
start = add_timezone(start, force=True)
try:
end_date = datetime.strptime(end, '%Y%m%d-%H%M')
Expand Down

0 comments on commit 7a0a282

Please sign in to comment.