Skip to content

Commit

Permalink
[fc] Repository: plone.app.z3cform
Browse files Browse the repository at this point in the history
Branch: refs/heads/master
Date: 2016-04-08T00:20:55+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.app.z3cform@48a37c5

Reduce dependency on plone.app.widgets in tests.

Files changed:
M CHANGES.rst
M plone/app/z3cform/tests/test_widgets.py
Repository: plone.app.z3cform
Branch: refs/heads/master
Date: 2016-04-08T00:21:54+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: plone/plone.app.z3cform@cec262e

Merge pull request #44 from plone/thet-rmwidgetsdep

remove test dep on plone.app.widgets

Files changed:
M CHANGES.rst
M plone/app/z3cform/tests/test_widgets.py
  • Loading branch information
thet committed Apr 7, 2016
1 parent 41a7a12 commit 268a84e
Showing 1 changed file with 155 additions and 143 deletions.
298 changes: 155 additions & 143 deletions last_commit.txt
@@ -1,184 +1,196 @@
Repository: Products.CMFPlone
Repository: plone.app.z3cform


Branch: refs/heads/5.0.x
Date: 2016-04-07T12:51:24-03:00
Author: Eric BREHAULT (ebrehault) <ebrehault@gmail.com>
Commit: https://github.com/plone/Products.CMFPlone/commit/a99df813fabff4e4cb4988d29592f8b50b16d65a
Branch: refs/heads/master
Date: 2016-04-08T00:20:55+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: https://github.com/plone/plone.app.z3cform/commit/48a37c56c87bb52a1208322b4fbb3a6961e4d41a

Fix #1511 when aggregating bundles, use ++plone++static overrided versions if any
Reduce dependency on plone.app.widgets in tests.

Files changed:
M CHANGES.rst
M Products/CMFPlone/resources/browser/combine.py
M Products/CMFPlone/tests/test_metabundles.py
M plone/app/z3cform/tests/test_widgets.py

diff --git a/CHANGES.rst b/CHANGES.rst
index bda95d1..6a2c1ca 100644
index 2b95fb4..a7f2f21 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -20,6 +20,9 @@ Fixes:
@@ -25,6 +25,9 @@ New:

- *add item here*
Fixes:

+- Bundle aggregation must use ++plone++static overrided versions if any.
+ [ebrehault]
+- Reduce dependency on plone.app.widgets in tests.
+ [thet]
+
- Enhance test in order to show problem in RelatedItemsWidget with
navigation-roots
[jensens]
diff --git a/plone/app/z3cform/tests/test_widgets.py b/plone/app/z3cform/tests/test_widgets.py
index 619184e..8bbafeb 100644
--- a/plone/app/z3cform/tests/test_widgets.py
+++ b/plone/app/z3cform/tests/test_widgets.py
@@ -4,9 +4,7 @@
from mock import Mock
from plone.app.testing import setRoles
from plone.app.testing import TEST_USER_ID
-from plone.app.widgets.testing import ExampleVocabulary
-from plone.app.widgets.testing import PLONEAPPWIDGETS_DX_INTEGRATION_TESTING
-from plone.app.widgets.testing import TestRequest
+from zope.publisher.browser import TestRequest as BaseTestRequest
from plone.app.z3cform.tests.layer import PAZ3CForm_INTEGRATION_TESTING
from plone.app.z3cform.widget import BaseWidget
from plone.dexterity.fti import DexterityFTI
@@ -19,6 +17,7 @@
from zope.component import provideUtility
from zope.component.globalregistry import base
from zope.interface import alsoProvides
+from zope.interface import implements
from zope.interface import Interface
from zope.schema import Choice
from zope.schema import Date
@@ -27,12 +26,34 @@
from zope.schema import Set
from zope.schema import TextLine
from zope.schema import Tuple
+from zope.schema.interfaces import IVocabularyFactory
+from zope.schema.vocabulary import SimpleTerm
+from zope.schema.vocabulary import SimpleVocabulary

5.0.4 (2016-04-06)
------------------
diff --git a/Products/CMFPlone/resources/browser/combine.py b/Products/CMFPlone/resources/browser/combine.py
index 289a98d..2ba659a 100644
--- a/Products/CMFPlone/resources/browser/combine.py
+++ b/Products/CMFPlone/resources/browser/combine.py
@@ -30,6 +30,14 @@ def get_production_resource_directory():


def get_resource(context, path):
+ if path.startswith('++plone++'):
+ # ++plone++ resources can be customized, we return their override
+ # value if any
+ overrides = get_override_directory(context)
+ filepath = path[9:]
+ if overrides.isFile(filepath):
+ return overrides.readFile(filepath)
import mock
import pytz
import unittest


+class ExampleVocabulary(object):
+ implements(IVocabularyFactory)
+
resource = context.unrestrictedTraverse(path)
if isinstance(resource, FilesystemFile):
(directory, sep, filename) = path.rpartition('/')
@@ -87,13 +95,17 @@ def write_css(context, folder, meta_bundle):
folder.writeFile(meta_bundle + ".css", fi)


-def combine_bundles(context):
+def get_override_directory(context):
persistent_directory = queryUtility(IResourceDirectory, name="persistent")
if persistent_directory is None:
return
if OVERRIDE_RESOURCE_DIRECTORY_NAME not in persistent_directory:
persistent_directory.makeDirectory(OVERRIDE_RESOURCE_DIRECTORY_NAME)
- container = persistent_directory[OVERRIDE_RESOURCE_DIRECTORY_NAME]
+ return persistent_directory[OVERRIDE_RESOURCE_DIRECTORY_NAME]
+ def __call__(self, context, query=None):
+ items = [u'One', u'Two', u'Three']
+ tmp = SimpleVocabulary([
+ SimpleTerm(it.lower(), it.lower(), it)
+ for it in items
+ if query is None
+ or query.lower() in it.lower()
+ ])
+ tmp.test = 1
+ return tmp
+
+
+def combine_bundles(context):
+ container = get_override_directory(context)
if PRODUCTION_RESOURCE_DIRECTORY not in container:
container.makeDirectory(PRODUCTION_RESOURCE_DIRECTORY)
production_folder = container[PRODUCTION_RESOURCE_DIRECTORY]
diff --git a/Products/CMFPlone/tests/test_metabundles.py b/Products/CMFPlone/tests/test_metabundles.py
index 35d2346..3b29e6c 100644
--- a/Products/CMFPlone/tests/test_metabundles.py
+++ b/Products/CMFPlone/tests/test_metabundles.py
@@ -38,3 +38,16 @@ def test_default_js_bundle(self):
"jQuery",
self.production_folder.readFile('default.js')
)
+class TestRequest(BaseTestRequest):
+ pass
+
+ def test_overrides(self):
+ persistent_directory = getUtility(
+ IResourceDirectory, name="persistent")
+ container = persistent_directory[OVERRIDE_RESOURCE_DIRECTORY_NAME]
+ container.makeDirectory('static')
+ static = container['static']
+ static.writeFile('plone-legacy-compiled.js', 'alert("Overrided legacy!");')
+ combine_bundles(self.portal)
+ self.assertIn(
+ 'alert("Overrided legacy!");',
+ self.production_folder.readFile('default.js')
+ )
+
class BaseWidgetTests(unittest.TestCase):

def setUp(self):
@@ -1226,7 +1247,7 @@ def _custom_field_widget(field, request):

class RichTextWidgetTests(unittest.TestCase):

- layer = PLONEAPPWIDGETS_DX_INTEGRATION_TESTING
+ layer = PAZ3CForm_INTEGRATION_TESTING

def setUp(self):
from plone.app.textfield import RichText as RichTextField


Repository: Products.CMFPlone
Repository: plone.app.z3cform


Branch: refs/heads/5.0.x
Date: 2016-04-07T14:33:32-03:00
Author: Héctor Velarde (hvelarde) <hvelarde@yahoo.com>
Commit: https://github.com/plone/Products.CMFPlone/commit/41c12ba389b7e2ba6f39df34cadd16b0286de149
Branch: refs/heads/master
Date: 2016-04-08T00:21:54+02:00
Author: Johannes Raggam (thet) <thetetet@gmail.com>
Commit: https://github.com/plone/plone.app.z3cform/commit/cec262e8ade0d7ce55f04ef3fbe0759d81bd2444

Merge pull request #1515 from plone/issue_1511_plone50
Merge pull request #44 from plone/thet-rmwidgetsdep

when aggregating bundles, use ++plone++static overrided versions if any
remove test dep on plone.app.widgets

Files changed:
M CHANGES.rst
M Products/CMFPlone/resources/browser/combine.py
M Products/CMFPlone/tests/test_metabundles.py
M plone/app/z3cform/tests/test_widgets.py

diff --git a/CHANGES.rst b/CHANGES.rst
index bda95d1..6a2c1ca 100644
index 2b95fb4..a7f2f21 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -20,6 +20,9 @@ Fixes:
@@ -25,6 +25,9 @@ New:

- *add item here*
Fixes:

+- Bundle aggregation must use ++plone++static overrided versions if any.
+ [ebrehault]
+- Reduce dependency on plone.app.widgets in tests.
+ [thet]
+
- Enhance test in order to show problem in RelatedItemsWidget with
navigation-roots
[jensens]
diff --git a/plone/app/z3cform/tests/test_widgets.py b/plone/app/z3cform/tests/test_widgets.py
index 619184e..8bbafeb 100644
--- a/plone/app/z3cform/tests/test_widgets.py
+++ b/plone/app/z3cform/tests/test_widgets.py
@@ -4,9 +4,7 @@
from mock import Mock
from plone.app.testing import setRoles
from plone.app.testing import TEST_USER_ID
-from plone.app.widgets.testing import ExampleVocabulary
-from plone.app.widgets.testing import PLONEAPPWIDGETS_DX_INTEGRATION_TESTING
-from plone.app.widgets.testing import TestRequest
+from zope.publisher.browser import TestRequest as BaseTestRequest
from plone.app.z3cform.tests.layer import PAZ3CForm_INTEGRATION_TESTING
from plone.app.z3cform.widget import BaseWidget
from plone.dexterity.fti import DexterityFTI
@@ -19,6 +17,7 @@
from zope.component import provideUtility
from zope.component.globalregistry import base
from zope.interface import alsoProvides
+from zope.interface import implements
from zope.interface import Interface
from zope.schema import Choice
from zope.schema import Date
@@ -27,12 +26,34 @@
from zope.schema import Set
from zope.schema import TextLine
from zope.schema import Tuple
+from zope.schema.interfaces import IVocabularyFactory
+from zope.schema.vocabulary import SimpleTerm
+from zope.schema.vocabulary import SimpleVocabulary

5.0.4 (2016-04-06)
------------------
diff --git a/Products/CMFPlone/resources/browser/combine.py b/Products/CMFPlone/resources/browser/combine.py
index 289a98d..2ba659a 100644
--- a/Products/CMFPlone/resources/browser/combine.py
+++ b/Products/CMFPlone/resources/browser/combine.py
@@ -30,6 +30,14 @@ def get_production_resource_directory():


def get_resource(context, path):
+ if path.startswith('++plone++'):
+ # ++plone++ resources can be customized, we return their override
+ # value if any
+ overrides = get_override_directory(context)
+ filepath = path[9:]
+ if overrides.isFile(filepath):
+ return overrides.readFile(filepath)
import mock
import pytz
import unittest


+class ExampleVocabulary(object):
+ implements(IVocabularyFactory)
+
resource = context.unrestrictedTraverse(path)
if isinstance(resource, FilesystemFile):
(directory, sep, filename) = path.rpartition('/')
@@ -87,13 +95,17 @@ def write_css(context, folder, meta_bundle):
folder.writeFile(meta_bundle + ".css", fi)


-def combine_bundles(context):
+def get_override_directory(context):
persistent_directory = queryUtility(IResourceDirectory, name="persistent")
if persistent_directory is None:
return
if OVERRIDE_RESOURCE_DIRECTORY_NAME not in persistent_directory:
persistent_directory.makeDirectory(OVERRIDE_RESOURCE_DIRECTORY_NAME)
- container = persistent_directory[OVERRIDE_RESOURCE_DIRECTORY_NAME]
+ return persistent_directory[OVERRIDE_RESOURCE_DIRECTORY_NAME]
+ def __call__(self, context, query=None):
+ items = [u'One', u'Two', u'Three']
+ tmp = SimpleVocabulary([
+ SimpleTerm(it.lower(), it.lower(), it)
+ for it in items
+ if query is None
+ or query.lower() in it.lower()
+ ])
+ tmp.test = 1
+ return tmp
+
+
+def combine_bundles(context):
+ container = get_override_directory(context)
if PRODUCTION_RESOURCE_DIRECTORY not in container:
container.makeDirectory(PRODUCTION_RESOURCE_DIRECTORY)
production_folder = container[PRODUCTION_RESOURCE_DIRECTORY]
diff --git a/Products/CMFPlone/tests/test_metabundles.py b/Products/CMFPlone/tests/test_metabundles.py
index 35d2346..3b29e6c 100644
--- a/Products/CMFPlone/tests/test_metabundles.py
+++ b/Products/CMFPlone/tests/test_metabundles.py
@@ -38,3 +38,16 @@ def test_default_js_bundle(self):
"jQuery",
self.production_folder.readFile('default.js')
)
+class TestRequest(BaseTestRequest):
+ pass
+
+ def test_overrides(self):
+ persistent_directory = getUtility(
+ IResourceDirectory, name="persistent")
+ container = persistent_directory[OVERRIDE_RESOURCE_DIRECTORY_NAME]
+ container.makeDirectory('static')
+ static = container['static']
+ static.writeFile('plone-legacy-compiled.js', 'alert("Overrided legacy!");')
+ combine_bundles(self.portal)
+ self.assertIn(
+ 'alert("Overrided legacy!");',
+ self.production_folder.readFile('default.js')
+ )
+
class BaseWidgetTests(unittest.TestCase):

def setUp(self):
@@ -1226,7 +1247,7 @@ def _custom_field_widget(field, request):

class RichTextWidgetTests(unittest.TestCase):

- layer = PLONEAPPWIDGETS_DX_INTEGRATION_TESTING
+ layer = PAZ3CForm_INTEGRATION_TESTING

def setUp(self):
from plone.app.textfield import RichText as RichTextField


0 comments on commit 268a84e

Please sign in to comment.