[Checkins] SVN: Sandbox/ulif/grok-adminui/src/grok/ Moved admin
related ftests to admin-dir to decouple grok and grokadmin further.
Uli Fouquet
uli at gnufix.de
Sun Jul 15 07:18:42 EDT 2007
Log message for revision 77991:
Moved admin related ftests to admin-dir to decouple grok and grokadmin further.
Changed:
A Sandbox/ulif/grok-adminui/src/grok/admin/ftests/
A Sandbox/ulif/grok-adminui/src/grok/admin/ftests/__init__.py
A Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/
A Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/__init__.py
A Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/apps.py
A Sandbox/ulif/grok-adminui/src/grok/admin/ftests/test_grokadmin_functional.py
D Sandbox/ulif/grok-adminui/src/grok/ftests/admin/
U Sandbox/ulif/grok-adminui/src/grok/ftests/test_grok_functional.py
-=-
Added: Sandbox/ulif/grok-adminui/src/grok/admin/ftests/__init__.py
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/ftests/__init__.py (rev 0)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/ftests/__init__.py 2007-07-15 11:18:41 UTC (rev 77991)
@@ -0,0 +1 @@
+# Make this is a package...
Added: Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/__init__.py
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/__init__.py (rev 0)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/__init__.py 2007-07-15 11:18:41 UTC (rev 77991)
@@ -0,0 +1,2 @@
+# this is a package
+
Added: Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/apps.py
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/apps.py (rev 0)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/ftests/apps/apps.py 2007-07-15 11:18:41 UTC (rev 77991)
@@ -0,0 +1,71 @@
+"""
+We fetch the standard page, which should provide us a menu to get all
+installable grok applications/components.
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/")
+ >>> print browser.contents
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ ...
+ ... <legend>Add application</legend>
+ ...
+
+We are able to add a mammoth manager...
+
+ >>> browser.getControl('Name your new app:').value = 'my-mammoth-manager'
+ >>> browser.getControl('Create').click()
+
+ >>> print browser.contents
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ ...
+ ... <legend>Installed applications</legend>
+ ... <input type="checkbox" class="checkbox" name="items"
+ value="my-mammoth-manager" />
+ <a href="http://localhost/my-mammoth-manager">
+ my-mammoth-manager
+ (MammothManager)
+ </a>
+ ... <legend>Add application</legend>
+ ...
+
+Launch the added mammoth manager
+
+ >>> mylink = browser.getLink('my-mammoth-manager (MammothManager)').click()
+ >>> print browser.contents
+ Let's manage some mammoths!
+
+ >>> print browser.url
+ http://localhost/my-mammoth-manager
+
+We are able to delete installed mammoth-managers
+
+ >>> browser.open("http://localhost/")
+ >>> print browser.contents
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ ...
+ ... <legend>Installed applications</legend>
+ ...
+ >>> ctrl = browser.getControl(name='items')
+ >>> ctrl.getControl(value='my-mammoth-manager').selected = True
+ >>> browser.getControl('Delete Selected').click()
+ >>> print browser.contents
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ ...
+ ...<legend>Add application</legend>
+ ...
+
+"""
+
+import grok
+
+class MammothManager(grok.Application, grok.Container):
+ """"A mammoth manager"""
+ pass
+
+class Index(grok.View):
+
+ def render(self):
+ return u"Let's manage some mammoths!"
Added: Sandbox/ulif/grok-adminui/src/grok/admin/ftests/test_grokadmin_functional.py
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/ftests/test_grokadmin_functional.py (rev 0)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/ftests/test_grokadmin_functional.py 2007-07-15 11:18:41 UTC (rev 77991)
@@ -0,0 +1,50 @@
+import unittest
+import grok
+import os.path
+
+from pkg_resources import resource_listdir
+from zope.testing import doctest
+from zope.app.testing.functional import (HTTPCaller, getRootFolder,
+ FunctionalTestSetup, sync, ZCMLLayer)
+
+ftesting_zcml = os.path.join(os.path.dirname(grok.__file__), 'ftesting.zcml')
+GrokFunctionalLayer = ZCMLLayer(ftesting_zcml, __name__, 'GrokFunctionalLayer')
+
+def setUp(test):
+ FunctionalTestSetup().setUp()
+
+def tearDown(test):
+ FunctionalTestSetup().tearDown()
+
+def suiteFromPackage(name):
+ files = resource_listdir(__name__, name)
+ suite = unittest.TestSuite()
+ for filename in files:
+ if not filename.endswith('.py'):
+ continue
+ if filename == '__init__.py':
+ continue
+
+ dottedname = 'grok.admin.ftests.%s.%s' % (name, filename[:-3])
+ test = doctest.DocTestSuite(
+ dottedname, setUp=setUp, tearDown=tearDown,
+ extraglobs=dict(http=HTTPCaller(),
+ getRootFolder=getRootFolder,
+ sync=sync),
+ optionflags=(doctest.ELLIPSIS+
+ doctest.NORMALIZE_WHITESPACE+
+ doctest.REPORT_NDIFF)
+ )
+ test.layer = GrokFunctionalLayer
+
+ suite.addTest(test)
+ return suite
+
+def test_suite():
+ suite = unittest.TestSuite()
+ for name in ['apps']:
+ suite.addTest(suiteFromPackage(name))
+ return suite
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
Modified: Sandbox/ulif/grok-adminui/src/grok/ftests/test_grok_functional.py
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/ftests/test_grok_functional.py 2007-07-15 09:46:38 UTC (rev 77990)
+++ Sandbox/ulif/grok-adminui/src/grok/ftests/test_grok_functional.py 2007-07-15 11:18:41 UTC (rev 77991)
@@ -43,7 +43,7 @@
def test_suite():
suite = unittest.TestSuite()
for name in ['view', 'static', 'xmlrpc', 'traversal', 'form', 'url',
- 'security', 'utility', 'catalog', 'admin']:
+ 'security', 'utility', 'catalog']:
suite.addTest(suiteFromPackage(name))
return suite
More information about the Checkins
mailing list