Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
Showing
1 changed file
with
155 additions
and
143 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
|
||
|