[Checkins] SVN: zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/ added support for blobs

Christian Zagrodnick cz at gocept.com
Thu Jun 14 07:11:00 EDT 2007


Log message for revision 76692:
  added support for blobs
  
  made the tests a bit more robust regarding where to find python'
  

Changed:
  U   zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/README.txt
  U   zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/__init__.py
  U   zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/tests.py

-=-
Modified: zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/README.txt
===================================================================
--- zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/README.txt	2007-06-14 11:10:13 UTC (rev 76691)
+++ zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/README.txt	2007-06-14 11:10:59 UTC (rev 76692)
@@ -34,6 +34,7 @@
     ... '''
     ... [buildout]
     ... parts = storage
+    ... find-links = http://download.zope.org/distribution/
     ... 
     ... [foo]
     ... zconfig =
@@ -56,7 +57,10 @@
 If we run the buildout, we'll get a storage part:
 
     >>> print system(join('bin', 'buildout')),
-    buildout: Installing storage
+    Installing storage.
+    Generated script '/sample-buildout/parts/storage/runzeo'.
+    Generated script '/sample-buildout/parts/storage/zdrun'.
+    Generated script '/sample-buildout/bin/storage'.
 
     >>> ls('parts', 'storage')
     -  runzeo
@@ -77,7 +81,6 @@
     path = /var/foo/Data.fs
     </filestorage>
     <BLANKLINE>
-    <BLANKLINE>
     <eventlog>
       level info
       <logfile>
@@ -94,12 +97,12 @@
       exit-codes 0, 2
       directory /sample-buildout/parts/storage
       default-to-interactive true
-      python /usr/local/bin/python2.4
+      python /.../python2.4
       logfile /sample-buildout/parts/storage/zeo.log
     </runner>
 
     >>> cat('parts', 'storage', 'zdrun')
-    #!/usr/local/bin/python2.4
+    #!/.../python2.4
     <BLANKLINE>
     import sys
     sys.path[0:0] = [
@@ -107,9 +110,9 @@
       '/sample-buildout/eggs/zdaemon-2.0-py2.4.egg',
       '/sample-buildout/eggs/ZConfig-2.4-py2.4.egg',
       '/sample-buildout/eggs/zope.testing-3.4-py2.4.egg',
-      '/sample-buildout/eggs/setuptools-0.6-py2.4.egg',
       '/sample-buildout/eggs/zope.proxy-3.4-py2.4.egg',
       '/sample-buildout/eggs/zope.interface-3.4-py2.4.egg',
+      '/sample-buildout/eggs/setuptools-0.6-py2.4.egg',
       ]
     <BLANKLINE>
     import zdaemon.zdrun
@@ -126,9 +129,9 @@
       '/sample-buildout/eggs/zdaemon-2.0-py2.4.egg',
       '/sample-buildout/eggs/ZConfig-2.4-py2.4.egg',
       '/sample-buildout/eggs/zope.testing-3.4-py2.4.egg',
-      '/sample-buildout/eggs/setuptools-0.6-py2.4.egg',
       '/sample-buildout/eggs/zope.proxy-3.4-py2.4.egg',
       '/sample-buildout/eggs/zope.interface-3.4-py2.4.egg',
+      '/sample-buildout/eggs/setuptools-0.6-py2.4.egg',
       ]
     <BLANKLINE>
     import ZEO.runzeo
@@ -149,9 +152,9 @@
       '/sample-buildout/eggs/zdaemon-2.0-py2.4.egg',
       '/sample-buildout/eggs/ZConfig-2.4-py2.4.egg',
       '/sample-buildout/eggs/zope.testing-3.4-py2.4.egg',
-      '/sample-buildout/eggs/setuptools-0.6-py2.4.egg',
       '/sample-buildout/eggs/zope.proxy-3.4-py2.4.egg',
       '/sample-buildout/eggs/zope.interface-3.4-py2.4.egg',
+      '/sample-buildout/eggs/setuptools-0.6-py2.4.egg',
       ]
     <BLANKLINE>
     import ZEO.zeoctl
@@ -190,6 +193,7 @@
     ... [buildout]
     ... develop = recipes
     ... parts = storage showconfig
+    ... find-links = http://download.zope.org/distribution/
     ... 
     ... [foo]
     ... zconfig =
@@ -208,12 +212,12 @@
     ... ''')
 
     >>> print system(join('bin', 'buildout')),
-    buildout: Develop: /sample-buildout/recipes
+    Develop: '/sample-buildout/recipes'
     <zodb>
       <zeoclient>
          server 8100
       </zeoclient>
     </zodb>
     <BLANKLINE>
-    buildout: Updating storage
-    buildout: Installing showconfig
+    Updating storage.
+    Installing showconfig.

Modified: zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/__init__.py
===================================================================
--- zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/__init__.py	2007-06-14 11:10:13 UTC (rev 76691)
+++ zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/__init__.py	2007-06-14 11:10:59 UTC (rev 76692)
@@ -3,7 +3,7 @@
 import zc.recipe.egg
 
 start_section = re.compile('(^|\n)[ \t]*<[^>]+>[ \t]*\n').search
-end_section = re.compile('(^|\n)[ \t]*</[^>]+>[ \t]*\n').search
+end_section = re.compile('(^|\n)[ \t]*</[^>]+>$').search
 
 logger = logging.getLogger('zc.recipe.zeo')
 
@@ -11,7 +11,7 @@
 
     def __init__(self, buildout, name, options):
         self.name, self.options = name, options
-        
+
         options['location'] = os.path.join(
             buildout['buildout']['parts-directory'],
             self.name,
@@ -38,13 +38,22 @@
             for option in zeo_options.iteritems()
             ])
 
-        dbconfig = buildout[options['database']]['zconfig']
+        dbconfig = buildout[options['database']]['zconfig'].strip()
         dbconfig = dbconfig[start_section(dbconfig).end(0):]
         dbconfig = dbconfig[start_section(dbconfig).start(0):]
-        dbconfig = dbconfig[:end_section(dbconfig).end(0):]
+        dbconfig = dbconfig[:end_section(dbconfig).start(0):]
         dbconfig = dbconfig.replace('>', ' 1>', 1)
         options['database-config'] = dbconfig
 
+
+        blob_dir = buildout[options['database']].get('blob-dir')
+        if blob_dir is None:
+            zeoclient_template = zeoclient_no_blob_template
+        else:
+            # Ah, we have blobs
+            zeo_options['blobs'] = True
+            zeoclient_template = zeoclient_blob_template
+
         zeo = options.get('zeo', 'ZODB3')
         zdaemon = options.get('zdaemon', 'ZODB3')
         if zdaemon != zeo:
@@ -55,6 +64,7 @@
 
         options['zconfig'] = zeoclient_template % dict(
             address = zeo_options['address'],
+            blob_dir = blob_dir,
             )
 
         # We don't want scripts generated
@@ -90,7 +100,7 @@
             ))
 
         requirements, ws = self.egg.working_set()
-            
+
         zc.buildout.easy_install.scripts(
             [('runzeo', 'ZEO.runzeo', 'main')],
             ws, options['executable'], subprogram_dir,
@@ -103,17 +113,17 @@
             [('zdrun', 'zdaemon.zdrun', 'main')],
             ws, options['executable'], subprogram_dir,
             )
-            
+
         zc.buildout.easy_install.scripts(
             [(self.name, 'ZEO.zeoctl', 'main')],
             ws, options['executable'], options['bin-directory'],
             arguments = ('\n        ["-C", %r]'
                          '\n        + sys.argv[1:]'
                          % conf_path),
-            )        
+            )
 
         return dest, os.path.join(bin_dir, self.name)
-        
+
     update = install
 
 zeo_conf = """\
@@ -149,10 +159,19 @@
 </runner>
 """
 
-zeoclient_template = """\
+zeoclient_no_blob_template = """\
 <zodb>
   <zeoclient>
      server %(address)s
   </zeoclient>
 </zodb>
 """
+
+zeoclient_blob_template = """
+<zodb>
+  <zeoclient>
+     blob-dir %(blob_dir)s
+     server %(address)s
+  </zeoclient>
+</zodb>
+"""

Modified: zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/tests.py
===================================================================
--- zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/tests.py	2007-06-14 11:10:13 UTC (rev 76691)
+++ zc.recipe.zeo/branches/dev/src/zc/recipe/zeo/tests.py	2007-06-14 11:10:59 UTC (rev 76692)
@@ -35,10 +35,11 @@
         doctest.DocFileSuite(
             'README.txt',
             setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+            optionflags=doctest.REPORT_NDIFF+doctest.ELLIPSIS,
             checker=renormalizing.RENormalizing([
                zc.buildout.testing.normalize_path,
                zc.buildout.testing.normalize_script,
-               zc.buildout.testing.normalize_egg_py,        
+               zc.buildout.testing.normalize_egg_py,
                (re.compile('#!\S+python\S*'), '#!python'),
                (re.compile('/sample-buildout/eggs/'
                            '([a-zA-Z.0-9]+)-\S+-pyN.N(-\S+)?.egg'),
@@ -48,5 +49,4 @@
                 ''),
                ])
             ),
-        
         ))



More information about the Checkins mailing list