[Checkins] SVN: Sandbox/darrylcousins/mars.resource/ Updating
Darryl Cousins
darryl at darrylcousins.net.nz
Sun Feb 3 22:20:04 EST 2008
Log message for revision 83480:
Updating
Changed:
U Sandbox/darrylcousins/mars.resource/buildout.cfg
U Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/ftesting.zcml
U Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/resource.py
U Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/test_functional.py
U Sandbox/darrylcousins/mars.resource/src/mars/resource/meta.py
U Sandbox/darrylcousins/mars.resource/src/mars/resource/resource.txt
U Sandbox/darrylcousins/mars.resource/src/mars/resource/tests.py
-=-
Modified: Sandbox/darrylcousins/mars.resource/buildout.cfg
===================================================================
--- Sandbox/darrylcousins/mars.resource/buildout.cfg 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/buildout.cfg 2008-02-04 03:20:03 UTC (rev 83480)
@@ -1,15 +1,11 @@
[buildout]
develop = .
parts = test
-eggs-directory = /opt/buildout/mars/eggs
-develop-eggs-directory = /opt/buildout/mars/develop-eggs
-extends = http://grok.zope.org/releaseinfo/grok-0.10.2.cfg
+extends = http://grok.zope.org/releaseinfo/grok-0.11.1.cfg
versions = versions
-executable = /opt/sandbox/mars/bin/python2.4
[versions]
-zope.securitypolicy = 3.4.0
-zope.app.securitypolicy = 3.4.3
+martian = 0.9.2
[test]
recipe = zc.recipe.testrunner
@@ -18,6 +14,3 @@
'-v'
]
-[zope3]
-location = .
-
Modified: Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/ftesting.zcml
===================================================================
--- Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/ftesting.zcml 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/ftesting.zcml 2008-02-04 03:20:03 UTC (rev 83480)
@@ -1,14 +1,13 @@
<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.resource.ftests">
<include package="grok" file="meta.zcml" />
- <include package="mars.layer" file="meta.zcml" />
<include package="mars.resource" file="meta.zcml" />
<include package="grok" />
+ <grok:grok package="mars.resource.ftests" />
</configure>
Modified: Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/resource.py
===================================================================
--- Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/resource.py 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/resource.py 2008-02-04 03:20:03 UTC (rev 83480)
@@ -1,8 +1,5 @@
"""
- >>> import grok
- >>> grok.grok('mars.resource.ftests.resource')
-
>>> from zope.testbrowser.testing import Browser
>>> browser = Browser()
>>> browser.handleErrors = False
@@ -39,9 +36,9 @@
# set layer on module level, all class declarations that use directive
# mars.layer.layer will use this layer - Skin, views, resources and templates
-mars.layer.layer(IMyLayer)
+grok.layer(IMyLayer)
-class MySkin(mars.layer.Skin):
+class MySkin(grok.Skin):
pass
# define a file resource
@@ -52,7 +49,7 @@
# define an image resource
class Logo(mars.resource.ResourceFactory):
grok.name('logo.jpg')
- mars.resource.file('resources/logo.jpg')
+ mars.resource.image('resources/logo.jpg')
# define a resource directory, takes name from factory.__name__
class Resources(mars.resource.ResourceDirectoryFactory):
Modified: Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/test_functional.py
===================================================================
--- Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/test_functional.py 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/src/mars/resource/ftests/test_functional.py 2008-02-04 03:20:03 UTC (rev 83480)
@@ -1,17 +1,20 @@
+import os
import unittest
+
from zope.testing import doctest
-
-from zope.app.testing.functional import FunctionalTestSetup
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')
+
optionflags = doctest.NORMALIZE_WHITESPACE + doctest.ELLIPSIS
def setUp(test):
- FunctionalTestSetup().setUp()
+ functional.FunctionalTestSetup().setUp()
def tearDown(test):
- FunctionalTestSetup().tearDown()
+ functional.FunctionalTestSetup().tearDown()
def test_suite():
suite = unittest.TestSuite()
Modified: Sandbox/darrylcousins/mars.resource/src/mars/resource/meta.py
===================================================================
--- Sandbox/darrylcousins/mars.resource/src/mars/resource/meta.py 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/src/mars/resource/meta.py 2008-02-04 03:20:03 UTC (rev 83480)
@@ -10,19 +10,22 @@
from zope.app.publisher.browser.directoryresource import DirectoryResourceFactory
import grok
-from grok.util import check_permission, get_default_permission
+from grok.util import (get_default_permission,
+ make_checker,
+ determine_class_directive)
import martian
from martian import util
import mars.resource
+
allowed_names = ('GET', 'HEAD', 'publishTraverse', 'browserDefault',
'request', '__call__')
class ResourceGrokker(martian.ClassGrokker):
component_class = mars.resource.ResourceFactory
- def grok(self, name, factory, context, module_info, templates):
+ def grok(self, name, factory, module_info, config, *kws):
factory.module_info = module_info
factory_name = factory.__name__.lower()
@@ -55,38 +58,33 @@
% (factory.__name__, file_name),
factory)
- provides = util.class_annotation(factory, 'grok.provides', IBrowserRequest)
- view_layer = util.class_annotation(factory, 'mars.layer.layer',
- None) or module_info.getAnnotation('mars.layer.layer',
- None) or IDefaultBrowserLayer
+ view_layer = determine_class_directive('grok.layer',
+ factory, module_info,
+ default=IDefaultBrowserLayer)
view_name = util.class_annotation(factory, 'grok.name', '')
- # protect resource, public by default
-# TODO this isn't working - the resource is always public.
- permission = get_default_permission(factory)
- if permission is not None:
- check_permission(factory, permission)
- if permission is None or permission == 'zope.Public':
- checker = NamesChecker(allowed_names)
- else:
- checker = NamesChecker(allowed_names, permission)
-
+ checker = NamesChecker(allowed_names)
if file:
factory = FileResourceFactory(file, checker, view_name)
elif image:
factory = ImageResourceFactory(image, checker, view_name)
- #print '\nname:', view_name, 'factory:', factory, 'provides:', provides, '\n'
- zope.component.provideAdapter(factory,
- adapts=(view_layer, ),
- provides=provides,
- name=view_name)
+ adapts = (view_layer, )
+
+ config.action(
+ discriminator=('adapter', adapts,
+ IBrowserRequest, view_name),
+ callable=zope.component.provideAdapter,
+ args=(factory, adapts,
+ IBrowserRequest, view_name),
+ )
+
return True
class ResourceDirectoryGrokker(martian.ClassGrokker):
component_class = mars.resource.ResourceDirectoryFactory
- def grok(self, name, factory, context, module_info, templates):
+ def grok(self, name, factory, module_info, config, *kws):
factory.module_info = module_info
factory_name = factory.__name__.lower()
@@ -101,30 +99,21 @@
% (factory.__name__, directory_name),
factory)
- provides = util.class_annotation(factory, 'grok.provides', IBrowserRequest)
- view_layer = util.class_annotation(factory, 'mars.layer.layer',
- None) or module_info.getAnnotation('mars.layer.layer',
- None) or IDefaultBrowserLayer
+ view_layer = determine_class_directive('grok.layer',
+ factory, module_info,
+ default=IDefaultBrowserLayer)
view_name = util.class_annotation(factory, 'grok.name', factory_name)
- # protect resource, public by default
-# TODO this isn't working - the resource is always public.
- permission = get_default_permission(factory)
- if permission is not None:
- check_permission(factory, permission)
- anames = allowed_names + ('__getitem__', 'get')
- if permission is None or permission == 'zope.Public':
- checker = NamesChecker(anames)
- else:
- checker = NamesChecker(anames, permission)
-
+ checker = NamesChecker(allowed_names)
factory = DirectoryResourceFactory(directory, checker, view_name)
- #print '\nname:', view_name, 'factory:', factory, 'provides:', provides, '\n'
- zope.component.provideAdapter(factory,
- adapts=(view_layer, ),
- provides=provides,
- name=view_name)
+ adapts = (view_layer, )
+
+ config.action(
+ discriminator=('adapter', adapts, IBrowserRequest, view_name),
+ callable=zope.component.provideAdapter,
+ args=(factory, adapts, IBrowserRequest, view_name),
+ )
return True
Modified: Sandbox/darrylcousins/mars.resource/src/mars/resource/resource.txt
===================================================================
--- Sandbox/darrylcousins/mars.resource/src/mars/resource/resource.txt 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/src/mars/resource/resource.txt 2008-02-04 03:20:03 UTC (rev 83480)
@@ -35,9 +35,9 @@
module is ``grokked`` on start up.
>>> from mars.resource.meta import ResourceGrokker
- >>> ResourceGrokker().grok('', Style, zope.interface.Interface,
- ... module_info, {})
+ >>> ResourceGrokker().grok('', Style, module_info, config)
True
+ >>> config.execute_actions()
We can now look up the resource.
Modified: Sandbox/darrylcousins/mars.resource/src/mars/resource/tests.py
===================================================================
--- Sandbox/darrylcousins/mars.resource/src/mars/resource/tests.py 2008-02-04 03:19:34 UTC (rev 83479)
+++ Sandbox/darrylcousins/mars.resource/src/mars/resource/tests.py 2008-02-04 03:20:03 UTC (rev 83480)
@@ -2,6 +2,8 @@
from zope.testing import doctest
import zope.interface
+from zope.configuration.config import ConfigurationMachine
+from zope.app.testing import setup
from martian.interfaces import IModuleInfo
@@ -13,24 +15,17 @@
def getAnnotation(self, name, default):
return default
-from zope.app.testing import setup
-globs = dict(module_info=ModuleInfo(), root=setup.placefulSetUp(True))
+globs = dict(module_info=ModuleInfo(),
+ root=setup.placefulSetUp(True),
+ config=ConfigurationMachine())
optionflags = doctest.NORMALIZE_WHITESPACE + doctest.ELLIPSIS
-def setUp(test):
- pass
-
def test_suite():
suite = unittest.TestSuite()
suite.addTests([doctest.DocFileSuite('./resource.txt',
- setUp=setUp, globs=globs,
+ globs=globs,
optionflags=optionflags),
])
return suite
-
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
-
-
More information about the Checkins
mailing list