[Checkins] SVN: megrok.resourceviewlet/trunk/ Updated to work with fanstatic

Souheil CHELFOUH souheil at chelfouh.com
Tue Jan 18 13:16:10 EST 2011


Log message for revision 119666:
  Updated to work with fanstatic
  

Changed:
  U   megrok.resourceviewlet/trunk/buildout.cfg
  U   megrok.resourceviewlet/trunk/setup.py
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py

-=-
Modified: megrok.resourceviewlet/trunk/buildout.cfg
===================================================================
--- megrok.resourceviewlet/trunk/buildout.cfg	2011-01-18 16:47:07 UTC (rev 119665)
+++ megrok.resourceviewlet/trunk/buildout.cfg	2011-01-18 18:16:10 UTC (rev 119666)
@@ -1,19 +1,15 @@
 [buildout]
-extends = http://grok.zope.org/releaseinfo/grok-1.1a2.cfg
+extends = http://grok.zope.org/releaseinfo/1.2/versions.cfg
 develop = .
-parts = test omelette releaser
+parts = test
 newest = false
 versions = versions
 
+[versions]
+megrok.resourceviewlet = 
+zope.app.wsgi = 3.10.0
+
 [test]
 recipe = zc.recipe.testrunner
 eggs = megrok.resourceviewlet [test]
 defaults = ['--tests-pattern', '^f?tests$', '-v', '-c']
-
-[omelette]
-recipe = collective.recipe.omelette
-eggs = ${test:eggs}
-
-[releaser]
-recipe = zc.recipe.egg
-eggs = zest.releaser

Modified: megrok.resourceviewlet/trunk/setup.py
===================================================================
--- megrok.resourceviewlet/trunk/setup.py	2011-01-18 16:47:07 UTC (rev 119665)
+++ megrok.resourceviewlet/trunk/setup.py	2011-01-18 18:16:10 UTC (rev 119666)
@@ -3,7 +3,7 @@
 from os.path import join
 from setuptools import setup, find_packages
 
-version = '0.1'
+version = '0.2'
 name = 'megrok.resourceviewlet'
 
 history = open(join('docs', 'HISTORY.txt')).read()
@@ -11,11 +11,9 @@
 
 test_requires = [
     'grokcore.view',
-    'zope.app.testing',
-    'zope.app.zcmlfiles',
     'zope.contentprovider',
     'zope.testbrowser',
-    'zope.testing',
+    'zope.fanstatic [test]'
     ]
 
 setup(name=name,
@@ -35,12 +33,12 @@
       platforms='Any',
       zip_safe=False,
       install_requires=[
-          'hurry.resource',
+          'fanstatic',
           'grokcore.viewlet',
-          'megrok.resource',
           'setuptools',
-          'zope.schema',
+          'zope.fanstatic',
           'zope.interface',
+          'zope.schema',
           'zope.viewlet',
           ],
       extras_require={'test': test_requires},

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt	2011-01-18 16:47:07 UTC (rev 119665)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt	2011-01-18 18:16:10 UTC (rev 119666)
@@ -13,10 +13,10 @@
 
   >>> import grokcore.component as grok
   >>> from grokcore import view, viewlet
-  >>> from zope.testbrowser.testing import Browser
+  >>> from zope.app.wsgi.testlayer import Browser
 
   >>> browser = Browser()
-  >>> browser.handleErrors = False 
+  >>> browser.handleErrors = False
 
 
 Library
@@ -24,15 +24,22 @@
 
 We first declare a resource. We'll include it in our page::
 
-  >>> from megrok import resource
-  >>> class SomeResource(resource.ResourceLibrary):
-  ...     resource.path('ftests/resources')
-  ...     resource.resource('thing.js')
+  >>> from fanstatic import Resource, Library
+  >>> myLibrary = Library('test_library', 'ftests/resources')
+  >>> Thing = Resource(myLibrary, 'thing.js')
 
-  >>> grok.testing.grok_component('library', SomeResource)
-  True
+This step is done by an entry point. For the testing, we do it by hand::
 
+  >>> from zope.fanstatic.zcml import create_factory
+  >>> from zope.component import getGlobalSiteManager
+  >>> from zope.publisher.interfaces.browser import IBrowserRequest
+  >>> from zope.interface import Interface
 
+  >>> resource_factory = create_factory(myLibrary)
+  >>> getGlobalSiteManager().registerAdapter(
+  ...      resource_factory, (IBrowserRequest,), Interface, myLibrary.name)
+
+
 Components
 ==========
 
@@ -79,7 +86,7 @@
 
   >>> class SomeViewlet(ResourceViewlet):
   ...   viewlet.context(Interface)
-  ...   resources = [SomeResource]
+  ...   resources = [Thing]
 
   >>> grok.testing.grok_component('viewlet', SomeViewlet)
   True
@@ -99,9 +106,8 @@
   >>> browser.open('http://localhost/@@index')
   >>> print browser.contents
   <html><head>
-    <script
-      type="text/javascript"
-      src="http://localhost/@@/++noop++.../someresource/thing.js"></script>
+    <script type="text/javascript"
+     src="http://localhost/fanstatic/test_library/thing.js"></script>
   </head></html>
 
 It works ! Enjoy.

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py	2011-01-18 16:47:07 UTC (rev 119665)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py	2011-01-18 18:16:10 UTC (rev 119666)
@@ -3,7 +3,6 @@
 import grokcore.viewlet as grok
 
 from grokcore.viewlet.components import ViewletManager, Viewlet
-from hurry.resource.interfaces import IInclusion
 from zope.schema import List, Object
 from zope.schema.fieldproperty import FieldProperty
 from zope.viewlet.interfaces import IViewlet
@@ -15,8 +14,7 @@
     """
     resources = List(
         title=u"Resources to be included",
-        required=True,
-        value_type=Object(schema=IInclusion))
+        required=True)
 
     def render(self):
         """Calling this method will include the resources.

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml	2011-01-18 16:47:07 UTC (rev 119665)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml	2011-01-18 18:16:10 UTC (rev 119666)
@@ -1,16 +1,56 @@
 <configure
     xmlns="http://namespaces.zope.org/zope"
-    xmlns:grok="http://namespaces.zope.org/grok"
-    i18n_domain="zope">
+    xmlns:browser="http://namespaces.zope.org/browser"
+    i18n_domain="zope"
+    package="megrok.resourceviewlet.ftests">
 
-  <include package="grokcore.view" file="meta.zcml" />
+  <!-- set up enough of Zope to run the tests -->
+  <include package="zope.app.publication" file="meta.zcml" />
+  <include package="zope.browserpage" file="meta.zcml" />
+  <include package="zope.component" file="meta.zcml" />
+  <include package="zope.principalregistry" file="meta.zcml" />
+  <include package="zope.security" file="meta.zcml" />
+  <include package="zope.securitypolicy" file="meta.zcml"/>
+
+  <include package="zope.annotation" />
+  <include package="zope.component" />
+  <include package="zope.app.appsetup" />
+  <include package="zope.app.publication" />
+  <include package="zope.container" />
+  <include package="zope.principalregistry" />
+  <include package="zope.site" />
+  <include package="zope.security" />
+  <include package="zope.traversing" />
+  <include package="zope.traversing.browser" />
+
+  <include package="grokcore.view" file="meta-minimal.zcml" />
   <include package="grokcore.viewlet" file="meta.zcml" />
-  <include package="zope.app.zcmlfiles" file="meta.zcml" />
 
-  <include package="zope.contentprovider" />
-  <include package="zope.app.zcmlfiles" />
   <include package="grokcore.view" />
   <include package="grokcore.viewlet" />
-  <include package="megrok.resource" />
- 
+
+  <!-- principals -->
+  <securityPolicy
+    component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+  />
+
+  <unauthenticatedPrincipal
+    id="zope.anybody"
+    title="Unauthenticated User"
+  />
+  <unauthenticatedGroup
+      id="zope.Anybody"
+      title="Unauthenticated Users"
+      />
+  <everybodyGroup
+      id="zope.Everybody"
+      title="All Users"
+      />
+  <grant
+      permission="zope.View"
+      principal="zope.Everybody"
+      />
+
+  <include package="zope.fanstatic"/>
+
 </configure>

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py	2011-01-18 16:47:07 UTC (rev 119665)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py	2011-01-18 18:16:10 UTC (rev 119666)
@@ -1,26 +1,22 @@
 # -*- coding: utf-8 -*-
 
-import os.path
 import unittest
-from zope.testing import doctest, module
-from zope.app.testing import functional
-from zope.app.testing.functional import ZCMLLayer
+import doctest
+import fanstatic
+import megrok.resourceviewlet.ftests
+from zope.fanstatic.testing import ZopeFanstaticBrowserLayer
 
-ftesting_zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')
-FunctionalLayer = ZCMLLayer(
-    ftesting_zcml, __name__, 'FunctionalLayer', allow_teardown=True)
 
+class TestLayer(ZopeFanstaticBrowserLayer):
+    def setup_middleware(self, app):
+        return fanstatic.Injector(app)
 
-def setUp(test):
-    module.setUp(test, 'megrok.resourceviewlet.ftests')
+layer = TestLayer(megrok.resourceviewlet.ftests)
 
-def tearDown(test):
-    module.tearDown(test)
-
 def test_suite():
-    suite = unittest.TestSuite()      
-    readme = functional.FunctionalDocFileSuite(
-        '../README.txt', setUp=setUp, tearDown=tearDown)
-    readme.layer = FunctionalLayer
-    suite.addTest(readme)
-    return suite
+    readme = doctest.DocFileSuite(
+        '../README.txt',
+        globs={'__name__': 'megrok.resourceviewlet.ftests'},
+        optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS)
+    readme.layer = layer
+    return unittest.TestSuite([readme])



More information about the checkins mailing list