[Checkins] SVN: Sandbox/darrylcousins/mars.viewlet/ Updates to get this old code working again

Darryl Cousins darryl at darrylcousins.net.nz
Sat Feb 9 21:43:03 EST 2008


Log message for revision 83700:
  Updates to get this old code working again

Changed:
  U   Sandbox/darrylcousins/mars.viewlet/buildout.cfg
  U   Sandbox/darrylcousins/mars.viewlet/setup.py
  U   Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/ftesting.zcml
  U   Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/test_functional.py
  U   Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/viewlet.py
  U   Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/meta.py
  U   Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/tests.py
  U   Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/viewlet.txt

-=-
Modified: Sandbox/darrylcousins/mars.viewlet/buildout.cfg
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/buildout.cfg	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/buildout.cfg	2008-02-10 02:43:03 UTC (rev 83700)
@@ -1,13 +1,13 @@
 [buildout]
 develop = .
 parts = test
-extends = http://grok.zope.org/releaseinfo/grok-0.11.1.cfg
+extends = http://download.zope.org/zope3.4/versions-3.4.0c1.cfg
 versions = versions
 
 [versions]
-martian = 0.9.2
+grok = 0.12dev
+martian = 0.9.3
 
-
 [test]
 recipe = zc.recipe.testrunner
 eggs = mars.viewlet [test]

Modified: Sandbox/darrylcousins/mars.viewlet/setup.py
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/setup.py	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/setup.py	2008-02-10 02:43:03 UTC (rev 83700)
@@ -14,15 +14,21 @@
 This package uses ``martian`` and ``grok`` to register viewlets
 for applications built on the ``zope`` framework.""",
     long_description=(
-        read('src/mars/viewlet/README.txt') +
+        read('mars/viewlet/README.txt') +
         read('CHANGES.txt')
         ),
-    packages=find_packages('src'),
-    package_dir = {'': 'src'},
-    include_package_data = True,
-    zip_safe=False,
+    classifiers = ['Development Status :: 1 - Planning',
+                    'Intended Audience :: Developers',
+                    'License :: Other/Proprietary License',
+                    'Programming Language :: Python',
+                    'Operating System :: OS Independent',
+                    'Topic :: Software Development :: Build Tools',
+                    'Framework :: Zope3',
+                    ],
+    packages=find_packages(),
+    namespace_packages=['mars'],
+    zip_safe=True,
     license='ZPL',
-    dependency_links = ['http://download.zope.org/distribution'],
     extras_require = dict(
                 test=['zope.app.testing',
                       'zope.testbrowser',

Modified: Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/ftesting.zcml
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/ftesting.zcml	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/ftesting.zcml	2008-02-10 02:43:03 UTC (rev 83700)
@@ -1,18 +1,38 @@
 <configure xmlns="http://namespaces.zope.org/zope"
-           xmlns:meta="http://namespaces.zope.org/meta"
-           xmlns:browser="http://namespaces.zope.org/browser"
+           xmlns:grok="http://namespaces.zope.org/grok"
            i18n_domain="zope"
            package="mars.viewlet.ftests">
 
-  <include package="grok" file="meta.zcml" />
+  <include package="grok" />
   <include package="mars.template" file="meta.zcml" />
-  <include package="mars.layer" file="meta.zcml" />
   <include package="mars.view" file="meta.zcml" />
   <include package="mars.viewlet" file="meta.zcml" />
+  <grok:grok package="mars.viewlet.ftests" />
 
+  <securityPolicy
+      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+      />
 
-  <include package="grok" />
+  <unauthenticatedPrincipal
+      id="zope.anybody"
+      title="Unauthenticated User"
+      />
+  <grant
+      permission="zope.View"
+      principal="zope.anybody"
+      />
 
+  <principal
+      id="zope.mgr"
+      title="Manager"
+      login="mgr"
+      password="mgrpw"
+      />
+
+  <role id="zope.Manager" title="Site Manager" />
+  <grantAll role="zope.Manager" />
+  <grant role="zope.Manager" principal="zope.mgr" />
+
 </configure>
 
 

Modified: Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/test_functional.py
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/test_functional.py	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/test_functional.py	2008-02-10 02:43:03 UTC (rev 83700)
@@ -1,3 +1,4 @@
+import os
 import unittest
 from zope.testing import doctest
 
@@ -3,6 +4,9 @@
 from zope.app.testing.functional import FunctionalTestSetup, getRootFolder
 from zope.app.testing import functional
-functional.defineLayer('TestLayer', 'ftesting.zcml')
 
+ftesting_zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')
+TestLayer = functional.ZCMLLayer(
+                       ftesting_zcml, __name__, 'TestLayer')
+
 globs = dict(getRootFolder=getRootFolder)
 optionflags = doctest.NORMALIZE_WHITESPACE + doctest.ELLIPSIS
@@ -23,12 +27,8 @@
     suite = unittest.TestSuite()
     dottedname = 'mars.viewlet.ftests.viewlet'
     test = doctest.DocTestSuite(
-                dottedname, setUp=setUp, globs=globs,
+                dottedname, setUp=setUp, extraglobs=globs,
                 tearDown=tearDown, optionflags=optionflags)
     test.layer = TestLayer
     suite.addTest(test)
     return suite
-
-if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')
-

Modified: Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/viewlet.py
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/viewlet.py	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/ftests/viewlet.py	2008-02-10 02:43:03 UTC (rev 83700)
@@ -1,8 +1,5 @@
 """
 
-  >>> import grok
-  >>> grok.grok('mars.viewlet.ftests.viewlet')
-  >>> from mars.viewlet.ftests.viewlet import Mammoth
   >>> getRootFolder()["manfred"] = Mammoth()
 
   >>> from zope.testbrowser.testing import Browser
@@ -32,6 +29,8 @@
 import mars.template
 
 ### This the context of the views
+### we don't need to define grok.context on the views because this is the 
+### implied `module` level context
 class Mammoth(grok.Model):
     title = u'Manfred'
 
@@ -39,10 +38,11 @@
 class IModuleLayer(mars.layer.IMinimalLayer):
     pass
 
-mars.layer.layer(IModuleLayer)
+### all objects in module are registered to this layer
+grok.layer(IModuleLayer)
 
 ### this skin uses the defined layer
-class MySkin(mars.layer.Skin):
+class MySkin(grok.Skin):
     pass
 
 ### the page that we are looking at
@@ -66,9 +66,9 @@
     pass
 
 ### viewlets for leftcolumn manager
+### vanilla viewlet with render method
 class FirstViewlet(mars.viewlet.Viewlet):
     """A simple viewlet"""
-    grok.context(Mammoth)
     mars.viewlet.manager(LeftColumn)
     mars.viewlet.view(Index) # not required
     weight = 0
@@ -76,10 +76,9 @@
     def render(self):
         return u'<div>First viewlet content</div>'
 
-### the second of which uses a template
+### the second of which uses a regsitered template
 class SecondViewlet(mars.viewlet.Viewlet):
     """A viewlet that has its own template"""
-    grok.context(Mammoth)
     mars.viewlet.manager(LeftColumn)
     weight = 1
 

Modified: Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/meta.py
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/meta.py	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/meta.py	2008-02-10 02:43:03 UTC (rev 83700)
@@ -12,22 +12,28 @@
     component_class = mars.viewlet.ViewletManager
     provides = IViewletManager
     
-    def register(self, factory, module_info):
+    def register(self, factory, config):
 
         view = util.class_annotation(factory, 'mars.viewlet.view',
-                       None) or IBrowserView
-#        print '\nname:', self.view_name,'context:', self.view_context,'factory:', factory,\
-#              'layer:', self.view_layer, 'provides', self.provides, 'view', view,  '\n'
+                                                   None) or IBrowserView
         zope.component.provideAdapter(factory,
                      adapts=(self.view_context, self.view_layer, view),
                      provides=self.provides,
                      name=self.view_name)
+        adapts = (self.view_context, self.view_layer, view)
 
+        config.action( 
+            discriminator=('adapter', adapts, self.provides, self.view_name),
+            callable=zope.component.provideAdapter,
+            args=(factory, adapts, self.provides, self.view_name),
+            )
 
+
 class ViewletGrokker(ViewGrokkerBase):
     component_class = mars.viewlet.Viewlet
+    provides = IViewlet
 
-    def register(self, factory, module_info):
+    def register(self, factory, config):
 
         manager = util.class_annotation(factory, 'mars.viewlet.manager',
                        None) or module_info.getAnnotation('mars.viewlet.manager',
@@ -35,32 +41,39 @@
 
         view = util.class_annotation(factory, 'mars.viewlet.view',
                        None) or IBrowserView
-#        print '\nname:', self.view_name,'context:', self.view_context,'factory:', factory,\
-#              'layer:', self.view_layer, 'manager', manager, 'view: ', view,'\n'
-        zope.component.provideAdapter(factory,
-                                 adapts=(self.view_context, self.view_layer, 
-                                         view, manager),
-                                 provides=IViewlet,
-                                 name=self.view_name)
 
+        adapts = (self.view_context, self.view_layer, view, manager)
 
+        config.action( 
+            discriminator=('adapter', adapts, self.provides, self.view_name),
+            callable=zope.component.provideAdapter,
+            args=(factory, adapts, self.provides, self.view_name),
+            )
+
+        #print '\nname:', self.view_name,'context:', self.view_context,'factory:', factory,\
+        #      'layer:', self.view_layer, 'manager', manager, 'view: ', view,'\n'
+
+
 class SimpleViewletGrokker(ViewGrokkerBase):
     component_class = mars.viewlet.SimpleViewlet
+    provides = IViewlet
 
-    def register(self, factory, module_info):
+    def register(self, factory, config):
 
         manager = util.class_annotation(factory, 'mars.viewlet.manager',
                        None) or module_info.getAnnotation('mars.viewlet.manager',
-                       None) or IViewletManager # IViewletManager?
-
+                       None) or IViewletManager
         view = util.class_annotation(factory, 'mars.viewlet.view',
                        None) or IBrowserView
+
+        adapts = (self.view_context, self.view_layer, view, manager)
+
+        config.action( 
+            discriminator=('adapter', adapts, self.provides, self.view_name),
+            callable=zope.component.provideAdapter,
+            args=(factory, adapts, self.provides, self.view_name),
+            )
+
 #        print '\nname:', self.view_name,'context:', self.view_context,'factory:', factory,\
 #              'layer:', self.view_layer, 'manager', manager, 'view: ', view,'\n'
-        zope.component.provideAdapter(factory,
-                                 adapts=(self.view_context, self.view_layer, 
-                                         view, manager),
-                                 provides=IViewlet,
-                                 name=self.view_name)
 
-

Modified: Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/tests.py
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/tests.py	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/tests.py	2008-02-10 02:43:03 UTC (rev 83700)
@@ -1,7 +1,8 @@
 import unittest
-from zope.testing import doctest
 
+from zope.testing import doctest
 import zope.interface
+from zope.configuration.config import ConfigurationMachine
 
 from martian.interfaces import IModuleInfo
 
@@ -13,20 +14,15 @@
     def getAnnotation(self, name, default):
         return default
 
-globs = dict(module_info=ModuleInfo())
+globs = dict(module_info=ModuleInfo(),
+             config=ConfigurationMachine())
 
 optionflags = doctest.NORMALIZE_WHITESPACE + doctest.ELLIPSIS
 
-def setUp(test):
-    # register provider TALES
-    from zope.app.pagetemplate import metaconfigure
-    from zope.contentprovider import tales
-    metaconfigure.registerType('provider', tales.TALESProviderExpression)
-
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTests([doctest.DocFileSuite('viewlet.txt',
-                             setUp=setUp, globs=globs,
+                             globs=globs,
                              optionflags=optionflags),
                    ])
 

Modified: Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/viewlet.txt
===================================================================
--- Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/viewlet.txt	2008-02-10 02:41:05 UTC (rev 83699)
+++ Sandbox/darrylcousins/mars.viewlet/src/mars/viewlet/viewlet.txt	2008-02-10 02:43:03 UTC (rev 83700)
@@ -24,6 +24,8 @@
   >>> import mars.viewlet
   >>> import mars.template
 
+Create a temp directory to store template files.
+
   >>> import os, tempfile
   >>> temp_dir = tempfile.mkdtemp()
 
@@ -33,8 +35,7 @@
   ...     zope.interface.implements(zope.interface.Interface)
   >>> content = Content()
 
-And a request object for ``viewing`` the viewlets. We'll create a special
-request object that implements IDefaultBrowserLayer
+And a request object for ``viewing`` the viewlets.
 
   >>> from zope.publisher.browser import TestRequest
   >>> request = TestRequest()
@@ -53,7 +54,7 @@
 ----------------
 
 Those regions are just content providers called viewlet managers that manage a
-special type of content providers known as viewlets. Every viewlet manager
+special type of content provider known as viewlets. Every viewlet manager
 handles the viewlets registered for it:
 
   >>> class MyManager(mars.viewlet.ViewletManager):
@@ -89,9 +90,9 @@
 Oh. Still nothing? Of course we need to ``grok`` our viewlet.
 
   >>> from mars.viewlet.meta import ViewletGrokker
-  >>> ViewletGrokker().grok('', FirstViewlet, zope.interface.Interface,
-  ...                               module_info, None)
+  >>> ViewletGrokker().grok('', FirstViewlet, module_info, config)
   True
+  >>> config.execute_actions()
 
 Lets try again to render the viewlet manager.
 
@@ -122,13 +123,13 @@
 
 Both the viewlet and the template need to be ``grokked``.
 
-  >>> ViewletGrokker().grok('', SecondViewlet, zope.interface.Interface,
-  ...                               module_info, None)
+  >>> ViewletGrokker().grok('', SecondViewlet, module_info, config)
   True
 
   >>> from mars.template.meta import TemplateFactoryGrokker
-  >>> TemplateFactoryGrokker().grok('', ViewTemplate, None, module_info, None)
+  >>> TemplateFactoryGrokker().grok('', ViewTemplate, module_info, config)
   True
+  >>> config.execute_actions()
 
 Rendering the manager should now include both viewlets.
 
@@ -153,9 +154,9 @@
 do that.
 
   >>> from mars.viewlet.meta import ViewletManagerGrokker
-  >>> ViewletManagerGrokker().grok('', MyManager, zope.interface.Interface,
-  ...                               module_info, None)
+  >>> ViewletManagerGrokker().grok('', MyManager, module_info, config)
   True
+  >>> config.execute_actions()
 
 And we try the lookup again.
 



More information about the Checkins mailing list