[Checkins] SVN: grok/trunk/ * created buildout

Wolfgang Schnerring wosc at wosc.de
Mon Oct 16 11:34:10 EDT 2006


Log message for revision 70699:
   * created buildout
   * made test runner setup functional tests, i. e. test files that are called 'functional_*.py'

Changed:
  _U  grok/trunk/
  A   grok/trunk/INSTALL.txt
  U   grok/trunk/TODO.txt
  A   grok/trunk/buildout.cfg
  A   grok/trunk/setup.py
  _U  grok/trunk/src/
  U   grok/trunk/src/grok/_grok.py
  U   grok/trunk/src/grok/tests/test_grok.py

-=-

Property changes on: grok/trunk
___________________________________________________________________
Name: svn:ignore
   + develop-eggs
eggs
bin
parts
.installed.cfg

Name: svn:externals
   + bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/


Added: grok/trunk/INSTALL.txt
===================================================================
--- grok/trunk/INSTALL.txt	2006-10-16 15:24:16 UTC (rev 70698)
+++ grok/trunk/INSTALL.txt	2006-10-16 15:34:09 UTC (rev 70699)
@@ -0,0 +1,32 @@
+Preparing for grok development
+------------------------------
+
+Grok is installed via buildout <http://cheeseshop.python.org/pypi/zc.buildout>.
+
+You may have setuptools already installed for your system Python. In
+that case, you may need to upgrade it first because buildout requires
+a very recent version::
+
+    $ sudo easy_install -U setuptools
+
+If this command fails because easy_install is not available, there is
+a good chance you do not have setuptools available for your system
+Python. If so, there is no problem because setuptools will be
+installed locally by buildout.
+
+Bootstrap the buildout environment::
+
+    $ python bootstrap/bootstrap.py
+
+and run the buildout command::
+
+    $ bin/buildout
+    [lots of stuff will be downloaded and installed locally here]
+
+Running the tests
+-----------------
+
+XXX
+
+    $ cd parts/instance
+    $ ../../bin/test
\ No newline at end of file

Modified: grok/trunk/TODO.txt
===================================================================
--- grok/trunk/TODO.txt	2006-10-16 15:24:16 UTC (rev 70698)
+++ grok/trunk/TODO.txt	2006-10-16 15:34:09 UTC (rev 70699)
@@ -113,12 +113,6 @@
 Views
 =====
 
-Step 4
-------
-
-- grok.resources() for templates
-- conflict detection between inline templates and file-system templates
-
 Step 5
 ------
 

Added: grok/trunk/buildout.cfg
===================================================================
--- grok/trunk/buildout.cfg	2006-10-16 15:24:16 UTC (rev 70698)
+++ grok/trunk/buildout.cfg	2006-10-16 15:34:09 UTC (rev 70699)
@@ -0,0 +1,29 @@
+[buildout]
+develop = .
+parts = zope3 data instance test
+
+# find-links = http://download.zope.org/distribution/
+
+[zope3]
+recipe = zc.recipe.zope3checkout
+url = svn://svn.zope.org/repos/main/Zope3/branches/3.3
+
+[data]
+recipe = zc.recipe.filestorage
+
+[instance]
+recipe = zc.recipe.zope3instance
+database = data
+user = grok:grok
+eggs = setuptools
+       grok
+
+zcml = *
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = grok
+extra-paths = parts/zope3/src
+defaults = ['--tests-pattern', '^f?tests$',
+            '-v'
+           ]

Added: grok/trunk/setup.py
===================================================================
--- grok/trunk/setup.py	2006-10-16 15:24:16 UTC (rev 70698)
+++ grok/trunk/setup.py	2006-10-16 15:34:09 UTC (rev 70699)
@@ -0,0 +1,20 @@
+from setuptools import setup, find_packages
+
+setup(
+    name='grok',
+    version='0.1',
+    author='Grok Team',
+    author_email='grok-dev at zope.org',
+    url='http://svn.zope.org/grok/trunk',
+    description="""\
+Grok: Now even cavemen can use Zope 3!
+""",
+    packages=find_packages('src'),
+    package_dir = {'': 'src'},
+    include_package_data = True,
+    zip_safe=False,
+    license='ZPL',
+    
+    install_requires=['setuptools',
+                     ],
+)


Property changes on: grok/trunk/src
___________________________________________________________________
Name: svn:ignore
   + grok.egg-info


Modified: grok/trunk/src/grok/_grok.py
===================================================================
--- grok/trunk/src/grok/_grok.py	2006-10-16 15:24:16 UTC (rev 70698)
+++ grok/trunk/src/grok/_grok.py	2006-10-16 15:34:09 UTC (rev 70699)
@@ -16,6 +16,7 @@
 import sys
 import os
 from pkg_resources import resource_listdir, resource_exists, resource_string
+import persistent
 from zope.dottedname.resolve import resolve
 from zope import component
 from zope import interface
@@ -30,7 +31,7 @@
                             TextDirective, InterfaceOrClassDirective)
      
 
-class Model(object):
+class Model(persistent.Persistent):
     pass
 
 class Adapter(object):

Modified: grok/trunk/src/grok/tests/test_grok.py
===================================================================
--- grok/trunk/src/grok/tests/test_grok.py	2006-10-16 15:24:16 UTC (rev 70698)
+++ grok/trunk/src/grok/tests/test_grok.py	2006-10-16 15:34:09 UTC (rev 70699)
@@ -1,15 +1,47 @@
 import unittest
 from pkg_resources import resource_listdir
 from zope.testing import doctest, cleanup
+from zope.app.testing.functional import HTTPCaller, getRootFolder, FunctionalTestSetup, sync, Functional
 
-def tearDown(test):
+
+def FunctionalDocTestSuite(*paths, **kw):
+    globs = kw.setdefault('globs', {})
+    globs['http'] = HTTPCaller()
+    globs['getRootFolder'] = getRootFolder
+    globs['sync'] = sync
+
+    #kw['package'] = doctest._normalize_module(kw.get('package'))
+
+    kwsetUp = kw.get('setUp')
+    def setUp(test):
+        FunctionalTestSetup().setUp()
+
+        if kwsetUp is not None:
+            kwsetUp(test)
+    kw['setUp'] = setUp
+
+    kwtearDown = kw.get('tearDown')
+    def tearDown(test):
+        if kwtearDown is not None:
+            kwtearDown(test)
+        FunctionalTestSetup().tearDown()
+    kw['tearDown'] = tearDown
+
+    if 'optionflags' not in kw:
+        old = doctest.set_unittest_reportflags(0)
+        doctest.set_unittest_reportflags(old)
+        kw['optionflags'] = (old
+                             | doctest.ELLIPSIS
+                             | doctest.REPORT_NDIFF
+                             | doctest.NORMALIZE_WHITESPACE)
+
+    suite = doctest.DocTestSuite(*paths, **kw)
+    suite.layer = Functional
+    return suite
+
+def cleanUpZope(test):
     cleanup.cleanUp()
 
-def grokTestSuite(pkg):
-    return doctest.DocTestSuite(pkg, tearDown=tearDown,
-                                optionflags=doctest.ELLIPSIS+
-                                doctest.NORMALIZE_WHITESPACE)
-
 def suiteFromPackage(name):
     files = resource_listdir(__name__, name)
     suite = unittest.TestSuite()
@@ -20,8 +52,16 @@
             continue
         if filename == '__init__.py':
             continue
+
         dottedname = 'grok.tests.%s.%s' % (name, filename[:-3])
-        suite.addTest(grokTestSuite(dottedname))
+        if filename.startswith("functional_"):
+            test = FunctionalDocTestSuite(dottedname)
+        else:
+            test = doctest.DocTestSuite(dottedname, tearDown=cleanUpZope,
+                                        optionflags=doctest.ELLIPSIS+
+                                        doctest.NORMALIZE_WHITESPACE)
+
+        suite.addTest(test)
     return suite
 
 def test_suite():



More information about the Checkins mailing list