[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