[Checkins] SVN: z3c.recipe.egg/trunk/ Not buildout not working yet

Ross Patterson me at rpatterson.net
Mon Oct 1 01:48:42 EDT 2007


Log message for revision 80433:
  Not buildout not working yet
  

Changed:
  _U  z3c.recipe.egg/trunk/
  A   z3c.recipe.egg/trunk/.cvsignore
  A   z3c.recipe.egg/trunk/EXTERNALS.txt
  A   z3c.recipe.egg/trunk/README.txt
  A   z3c.recipe.egg/trunk/buildout.cfg
  A   z3c.recipe.egg/trunk/z3c/__init__.py
  A   z3c.recipe.egg/trunk/z3c/recipe/
  A   z3c.recipe.egg/trunk/z3c/recipe/__init__.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/__init__.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/editable.txt
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/setup.txt
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/__init__.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/README.txt
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/bar/
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/bar/__init__.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/setup.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/README.txt
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/foo/
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/foo/__init__.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/setup.py
  A   z3c.recipe.egg/trunk/z3c/recipe/egg/tests/tests.py

-=-

Property changes on: z3c.recipe.egg/trunk
___________________________________________________________________
Name: svn:ignore
   + .installed.cfg
bin
develop-eggs
parts
build
dist

Name: svn:externals
   + #
# applied by: svn propset svn:externals -F ./EXTERNALS.txt .
#
bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap


Added: z3c.recipe.egg/trunk/.cvsignore
===================================================================
--- z3c.recipe.egg/trunk/.cvsignore	                        (rev 0)
+++ z3c.recipe.egg/trunk/.cvsignore	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,6 @@
+.installed.cfg
+bin
+develop-eggs
+parts
+build
+dist
\ No newline at end of file

Copied: z3c.recipe.egg/trunk/EXTERNALS.txt (from rev 80198, z3c.repoexternals/trunk/EXTERNALS.txt)
===================================================================
--- z3c.recipe.egg/trunk/EXTERNALS.txt	                        (rev 0)
+++ z3c.recipe.egg/trunk/EXTERNALS.txt	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,4 @@
+#
+# applied by: svn propset svn:externals -F ./EXTERNALS.txt .
+#
+bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap

Added: z3c.recipe.egg/trunk/README.txt
===================================================================
--- z3c.recipe.egg/trunk/README.txt	                        (rev 0)
+++ z3c.recipe.egg/trunk/README.txt	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,22 @@
+==============
+z3c.recipe.egg
+==============
+
+Recipies based on zc.recipe.egg for working with source
+distributions.
+
+Editable Distributions
+----------------------
+
+The z3c.recipe.egg.Editable recipe use the easy_install --editable and
+--build-directory options to download a source distribution.
+
+See z3c/recipe/egg/editable.txt for details.
+
+Running Setup Scripts
+---------------------
+
+The z3c.recipe.egg.Setup recipe calls arbitrary setup.py commands on a
+distribution in a buildout.
+
+See z3c/recipe/egg/setup.txt for details.

Added: z3c.recipe.egg/trunk/buildout.cfg
===================================================================
--- z3c.recipe.egg/trunk/buildout.cfg	                        (rev 0)
+++ z3c.recipe.egg/trunk/buildout.cfg	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,7 @@
+[buildout]
+develop = .
+parts = test
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = z3c.recipe.egg [test]

Added: z3c.recipe.egg/trunk/z3c/__init__.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/__init__.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/__init__.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Added: z3c.recipe.egg/trunk/z3c/recipe/__init__.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/__init__.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/__init__.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/__init__.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/__init__.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/__init__.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,152 @@
+import sys, os, pkg_resources, subprocess
+
+import distutils.core
+import setuptools.command.easy_install
+import zc.buildout.easy_install
+import zc.recipe.egg
+
+ei_logger = zc.buildout.easy_install.logger
+
+class Setup(object):
+
+    def __init__(self, buildout, name, options):
+        self.buildout = buildout
+        self.name = name
+        self.options = options
+
+    def install(self):
+        setups = [os.path.join(self.buildout['buildout']['directory'],
+                               setup.strip())
+                  for setup in self.options['setup'].split('\n')
+                  if setup.strip()]
+        if 'args' in self.options:
+            for setup in setups:
+                self.buildout.setup(
+                    [setup] + self.options['args'].split())
+
+        if self.options.get('develop') == 'true':
+            develop(self, setups)
+        
+        return ()
+
+    update = install
+
+class Editable(zc.recipe.egg.Eggs):
+
+    def __init__(self, buildout, name, options):
+        super(Editable, self).__init__(buildout, name, options)
+        options['location'] = os.path.join(
+            buildout['buildout']['parts-directory'], self.name)
+        if 'build-directory' not in options:
+            options['build-directory'] = options['location']
+        else:
+            options['build-directory'] = os.path.join(
+                buildout['buildout']['directory'], 
+                options['build-directory'])
+
+        self.reqs = [
+            pkg_resources.Requirement.parse(r.strip())
+            for r in options.get('eggs', self.name).split('\n')
+            if r.strip()]
+
+        self.newest = buildout['buildout'].get('newest') == 'true'
+        self.online = (self.newest and
+                       buildout['buildout'].get('offline') != 'true')
+
+        # Track versions
+        if self.online:
+            options['versions'] = self.get_online_versions()
+        else:
+            options['versions'] = self.get_offline_versions()
+
+    def get_online_versions(self):
+        options = self.options
+        self.installer = zc.buildout.easy_install.Installer(
+            links=self.links,
+            index = self.index, 
+            executable = options['executable'],
+            always_unzip=options.get('unzip') == 'true',
+            path=[options['develop-eggs-directory']],
+            newest=self.newest)
+        return '\n'.join([
+                '%s==%s' % (dist.project_name, dist.version)
+                for dist in (self.installer._obtain(req, source=True)
+                             for req in self.reqs)
+                if dist is not None])
+
+    def get_offline_versions(self):
+        options = self.options
+        return '\n'.join([
+                '%s==%s' % (dist.get_name(), dist.get_version())
+                for dist in (
+                    distutils.core.run_setup(
+                        os.path.join(options['build-directory'],
+                                     req.key, 'setup.py'),
+                        stop_after='commandline')
+                    for req in self.reqs
+                    if os.path.isdir(
+                        os.path.join(options['build-directory'],
+                                     req.key)))])
+            
+    def install(self):
+        if not self.online:
+            return self.get_location()
+        
+        options = self.options
+
+        dists = [req.unsafe_name for req in self.reqs if not
+                 os.path.isdir(os.path.join(
+                    self.options['build-directory'], req.key))]
+        if len(dists) > 0:
+            args = ['-c', zc.buildout.easy_install._easy_install_cmd]
+            
+            if options.get('unzip') == 'true':
+                args += ['-Z']
+            level = ei_logger.getEffectiveLevel()
+            if level > 0:
+                args += ['-q']
+            elif level < 0:
+                args += ['-v']
+
+            args.extend(
+                ['--find-links='+' '.join(self.links), '--editable',
+                 '--build-directory='+options['build-directory']])
+            args.extend(dists)
+            path = self.installer._get_dist(
+                pkg_resources.Requirement.parse('setuptools'),
+                pkg_resources.WorkingSet([]), False,)[0].location
+            sys.stdout.flush() # We want any pending output first
+            sys.stderr.flush()
+            ei_logger.debug(
+                'Running easy_install:\n%s "%s"\npath=%s\n',
+                options['executable'], '" "'.join(args), path)
+            returncode = subprocess.Popen(
+                args=[options['executable']]+args,
+                env=dict(os.environ, PYTHONPATH=path)
+                ).wait()
+            assert returncode == 0, (
+                'easy_install exited with returncode %s' % returncode)
+        
+        if self.options.get('develop') == 'true':
+            develop(self, (
+                    os.path.join(self.options['build-directory'],
+                                 req.key)
+                    for req in self.reqs))
+
+        return self.get_location()
+
+    def get_location(self):
+        if os.path.isdir(self.options['location']):
+            return self.options['location']
+        else:
+            return ()
+
+    def update(self):
+        pass
+
+def develop(self, setups):
+    for setup in setups:
+        self.buildout._logger.info("Develop: %r", setup)
+        zc.buildout.easy_install.develop(
+            setup=setup, dest=self.buildout['buildout'][
+                'develop-eggs-directory'])

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/editable.txt
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/editable.txt	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/editable.txt	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,222 @@
+;-*-Doctest-*-
+======================
+Editable Distributions
+======================
+
+The z3c.recipe.egg.Editable recipe use the easy_install
+--editable and --build-directory options to download a source
+distribution.
+
+If no build-directory is specified the part directory will be used.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demoneeded
+    ...
+    ... [demoneeded]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout),
+    Installing demoneeded.
+
+    >>> ls(sample_buildout, 'parts', 'demoneeded')
+    d  demoneeded
+
+If the develop option is true then the distributions will be
+installed in develop mode.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demoneeded
+    ...
+    ... [demoneeded]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... eggs = demoneeded
+    ... develop = true
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout),
+    Uninstalling demoneeded.
+    Installing demoneeded.
+    Develop: '/sample-buildout/parts/demoneeded/demoneeded'
+
+    >>> ls(sample_buildout, 'develop-eggs')
+    -  demoneeded.egg-link
+    -  z3c.recipe.egg.egg-link
+    -  zc.recipe.egg.egg-link
+
+Multiple distributions can be specified.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demoneeded
+    ...
+    ... [demoneeded]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... eggs = demoneeded
+    ...        extdemo
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout),
+    Uninstalling demoneeded.
+    Installing demoneeded.
+
+    >>> ls(sample_buildout, 'parts', 'demoneeded')
+    d  demoneeded
+    d  extdemo
+
+If a new qualifying version is available then the part will be
+reinstalled.
+
+    >>> write(
+    ...     sample_buildout, 'parts', 'demoneeded', 'demoneeded',
+    ...     'setup.py', """
+    ... from setuptools import setup
+    ... setup(name='demoneeded', py_modules=['eggrecipedemobeeded'],
+    ...       zip_safe=True, version='1.3', author='bob',
+    ...       url='bob', author_email='bob')
+    ... """)
+
+    >>> import os
+    >>> sdist(os.path.join(
+    ...     sample_buildout, 'parts', 'demoneeded', 'demoneeded'),
+    ...     sample_eggs)
+
+    >>> print system(buildout),
+    Uninstalling demoneeded.
+    Installing demoneeded.
+
+    >>> ls(sample_buildout, 'parts', 'demoneeded')
+    d  demoneeded
+    d  extdemo
+
+    >>> cat(
+    ...     sample_buildout, 'parts', 'demoneeded', 'demoneeded',
+    ...     'setup.py')
+    <BLANKLINE>
+    from setuptools import setup
+    setup(name='demoneeded', py_modules=['eggrecipedemobeeded'],
+          zip_safe=True, version='1.3', author='bob',
+          url='bob', author_email='bob')
+
+If the part is not to be reinstalled, running buildout in offline or
+non-newest mode, the recipe preserves the existing installation.
+
+    >>> print system(buildout+' -No'),
+    Updating demoneeded.
+
+    >>> ls(sample_buildout, 'parts', 'demoneeded')
+    d  demoneeded
+    d  extdemo
+
+If the part is to be reinstalled and buildout is run in offline or
+non-newest mode, the recipe does nothing.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demoneeded
+    ...
+    ... [demoneeded]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... eggs = demoneeded
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout+' -N'),
+    Uninstalling demoneeded.
+    Installing demoneeded.
+
+    >>> ls(sample_buildout, 'parts')
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demoneeded
+    ...
+    ... [demoneeded]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... eggs = demoneeded
+    ...        extdemo
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout+' -o'),
+    Uninstalling demoneeded.
+    Installing demoneeded.
+
+    >>> ls(sample_buildout, 'parts')
+
+If build-directory is specified, the source distributions will be
+extracted there.
+
+    >>> mkdir(sample_buildout, 'src')
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demoneeded
+    ...
+    ... [demoneeded]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... eggs = demoneeded
+    ...        extdemo
+    ... build-directory = src
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout),
+    Uninstalling demoneeded.
+    Installing demoneeded.
+
+    >>> ls(sample_buildout, 'parts')
+    >>> ls(sample_buildout, 'src')
+    d  demoneeded
+    d  extdemo
+
+If the build directory is present, it will not be removed when the
+part is installed preserving any changes.
+
+    >>> write(
+    ...     sample_buildout, 'src', 'demoneeded', 'setup.py', """
+    ... from setuptools import setup
+    ... setup(name='demoneeded', py_modules=['eggrecipedemobeeded'],
+    ...       zip_safe=True, version='1.4', author='bob',
+    ...       url='bob', author_email='bob')
+    ... """)
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = demo
+    ...
+    ... [demo]
+    ... recipe = z3c.recipe.egg:editable
+    ... find-links = %(server)s
+    ... eggs = demoneeded
+    ...        extdemo
+    ... build-directory = src
+    ... """ % dict(server=link_server))
+
+    >>> print system(buildout),
+    Uninstalling demoneeded.
+    Installing demo.
+
+    >>> ls(sample_buildout, 'src')
+    d  demoneeded
+    d  extdemo
+
+    >>> cat(
+    ...     sample_buildout, 'src', 'demoneeded', 'setup.py')
+    <BLANKLINE>
+    from setuptools import setup
+    setup(name='demoneeded', py_modules=['eggrecipedemobeeded'],
+          zip_safe=True, version='1.4', author='bob',
+          url='bob', author_email='bob')

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/setup.txt
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/setup.txt	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/setup.txt	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,193 @@
+;-*-Doctest-*-
+=====================
+Running Setup Scripts
+=====================
+
+The z3c.recipe.egg.Setup recipe calls arbitrary setup.py
+commands on a distribution in a buildout.
+
+The buildout requires only the setup argument which specifies a setup
+script or the directory containing a setup.py script.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = foo
+    ...
+    ... [foo]
+    ... recipe = z3c.recipe.egg:setup
+    ... setup = foo
+    ... args = sdist
+    ... """)
+
+The seupt script is run with the specified arguments.
+
+    >>> print system(buildout),
+    Installing foo.
+    Running setup script '/sample-buildout/foo/setup.py'.
+    running sdist
+    running egg_info
+    creating foo.egg-info
+    writing foo.egg-info/PKG-INFO
+    writing top-level names to foo.egg-info/top_level.txt
+    writing dependency_links to foo.egg-info/dependency_links.txt
+    writing manifest file 'foo.egg-info/SOURCES.txt'
+    writing manifest file 'foo.egg-info/SOURCES.txt'
+    creating foo-0.0.0
+    creating foo-0.0.0/foo
+    creating foo-0.0.0/foo.egg-info
+    making hard links in foo-0.0.0...
+    hard linking README.txt -> foo-0.0.0
+    hard linking setup.py -> foo-0.0.0
+    hard linking foo/__init__.py -> foo-0.0.0/foo
+    hard linking foo.egg-info/PKG-INFO -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/SOURCES.txt -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/dependency_links.txt -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/top_level.txt -> foo-0.0.0/foo.egg-info
+    Writing foo-0.0.0/setup.cfg
+    creating dist
+    tar -cf dist/foo-0.0.0.tar foo-0.0.0
+    gzip -f9 dist/foo-0.0.0.tar
+    removing 'foo-0.0.0' (and everything under it)
+
+    >>> ls(sample_buildout, 'foo', 'dist')
+    -  foo-0.0.0.tar.gz
+
+    >>> remove(sample_buildout, 'foo', 'dist', 'foo-0.0.0.tar.gz')
+    
+The setup script is also run on update.
+
+    >>> print system(buildout),
+    Updating foo.
+    Running setup script '/sample-buildout/foo/setup.py'.
+    running sdist
+    running egg_info
+    writing foo.egg-info/PKG-INFO
+    writing top-level names to foo.egg-info/top_level.txt
+    writing dependency_links to foo.egg-info/dependency_links.txt
+    writing manifest file 'foo.egg-info/SOURCES.txt'
+    creating foo-0.0.0
+    creating foo-0.0.0/foo
+    creating foo-0.0.0/foo.egg-info
+    making hard links in foo-0.0.0...
+    hard linking README.txt -> foo-0.0.0
+    hard linking setup.py -> foo-0.0.0
+    hard linking foo/__init__.py -> foo-0.0.0/foo
+    hard linking foo.egg-info/PKG-INFO -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/SOURCES.txt -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/dependency_links.txt -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/top_level.txt -> foo-0.0.0/foo.egg-info
+    Writing foo-0.0.0/setup.cfg
+    tar -cf dist/foo-0.0.0.tar foo-0.0.0
+    gzip -f9 dist/foo-0.0.0.tar
+    removing 'foo-0.0.0' (and everything under it)
+
+    >>> ls(sample_buildout, 'foo', 'dist')
+    -  foo-0.0.0.tar.gz
+
+    >>> remove(sample_buildout, 'foo', 'dist', 'foo-0.0.0.tar.gz')
+
+Multiple setup directories or scripts can be specified.  Add the
+second distribution.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = foo
+    ...
+    ... [foo]
+    ... recipe = z3c.recipe.egg:setup
+    ... setup =
+    ...     foo
+    ...     bar
+    ... args = sdist
+    ... """)
+
+Now the buildout will run the setup script on both.
+
+    >>> print system(buildout),
+    Uninstalling foo.
+    Installing foo.
+    Running setup script '/sample-buildout/foo/setup.py'.
+    running sdist
+    running egg_info
+    writing foo.egg-info/PKG-INFO
+    writing top-level names to foo.egg-info/top_level.txt
+    writing dependency_links to foo.egg-info/dependency_links.txt
+    writing manifest file 'foo.egg-info/SOURCES.txt'
+    creating foo-0.0.0
+    creating foo-0.0.0/foo
+    creating foo-0.0.0/foo.egg-info
+    making hard links in foo-0.0.0...
+    hard linking README.txt -> foo-0.0.0
+    hard linking setup.py -> foo-0.0.0
+    hard linking foo/__init__.py -> foo-0.0.0/foo
+    hard linking foo.egg-info/PKG-INFO -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/SOURCES.txt -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/dependency_links.txt -> foo-0.0.0/foo.egg-info
+    hard linking foo.egg-info/top_level.txt -> foo-0.0.0/foo.egg-info
+    Writing foo-0.0.0/setup.cfg
+    tar -cf dist/foo-0.0.0.tar foo-0.0.0
+    gzip -f9 dist/foo-0.0.0.tar
+    removing 'foo-0.0.0' (and everything under it)
+    Running setup script '/sample-buildout/bar/setup.py'.
+    running sdist
+    running egg_info
+    creating bar.egg-info
+    writing bar.egg-info/PKG-INFO
+    writing top-level names to bar.egg-info/top_level.txt
+    writing dependency_links to bar.egg-info/dependency_links.txt
+    writing manifest file 'bar.egg-info/SOURCES.txt'
+    writing manifest file 'bar.egg-info/SOURCES.txt'
+    creating bar-0.0.0
+    creating bar-0.0.0/bar
+    creating bar-0.0.0/bar.egg-info
+    making hard links in bar-0.0.0...
+    hard linking README.txt -> bar-0.0.0
+    hard linking setup.py -> bar-0.0.0
+    hard linking bar/__init__.py -> bar-0.0.0/bar
+    hard linking bar.egg-info/PKG-INFO -> bar-0.0.0/bar.egg-info
+    hard linking bar.egg-info/SOURCES.txt -> bar-0.0.0/bar.egg-info
+    hard linking bar.egg-info/dependency_links.txt -> bar-0.0.0/bar.egg-info
+    hard linking bar.egg-info/top_level.txt -> bar-0.0.0/bar.egg-info
+    Writing bar-0.0.0/setup.cfg
+    creating dist
+    tar -cf dist/bar-0.0.0.tar bar-0.0.0
+    gzip -f9 dist/bar-0.0.0.tar
+    removing 'bar-0.0.0' (and everything under it)
+
+    >>> ls(sample_buildout, 'foo', 'dist')
+    -  foo-0.0.0.tar.gz
+
+    >>> ls(sample_buildout, 'bar', 'dist')
+    -  bar-0.0.0.tar.gz
+
+    >>> remove(sample_buildout, 'foo', 'dist', 'foo-0.0.0.tar.gz')
+    >>> remove(sample_buildout, 'bar', 'dist', 'bar-0.0.0.tar.gz')
+
+If the develop option is true then the distributions will be
+installed in develop mode.
+
+    >>> write(sample_buildout, 'buildout.cfg',
+    ... """
+    ... [buildout]
+    ... parts = foo
+    ...
+    ... [foo]
+    ... recipe = z3c.recipe.egg:setup
+    ... setup = foo
+    ...         bar
+    ... develop = true
+    ... """)
+
+    >>> print system(buildout),
+    Uninstalling foo.
+    Installing foo.
+    Develop: '/sample-buildout/foo'
+    Develop: '/sample-buildout/bar'
+
+    >>> ls(sample_buildout, 'develop-eggs')
+    -  bar.egg-link
+    -  foo.egg-link
+    -  z3c.recipe.egg.egg-link
+    -  zc.recipe.egg.egg-link

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/__init__.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/__init__.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/__init__.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1 @@
+"""z3c.recipe.egg.tests"""

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/README.txt
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/README.txt	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/README.txt	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1 @@
+bar distribution

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/bar/__init__.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/bar/__init__.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/bar/__init__.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1 @@
+import os

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/setup.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/setup.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/bar/setup.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,7 @@
+from setuptools import setup, find_packages
+
+setup(name='bar',
+      author='bar',
+      author_email='bar at bar.com',
+      url='http://nohost/bar',
+      packages=find_packages())

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/README.txt
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/README.txt	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/README.txt	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1 @@
+foo distribution

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/foo/__init__.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/foo/__init__.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/foo/__init__.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1 @@
+import os

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/setup.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/setup.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/foo/setup.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,7 @@
+from setuptools import setup, find_packages
+
+setup(name='foo',
+      author='foo',
+      author_email='foo at foo.com',
+      url='http://nohost/foo',
+      packages=find_packages())

Added: z3c.recipe.egg/trunk/z3c/recipe/egg/tests/tests.py
===================================================================
--- z3c.recipe.egg/trunk/z3c/recipe/egg/tests/tests.py	                        (rev 0)
+++ z3c.recipe.egg/trunk/z3c/recipe/egg/tests/tests.py	2007-10-01 05:48:41 UTC (rev 80433)
@@ -0,0 +1,24 @@
+import unittest, os, shutil
+from zope.testing import doctest, renormalizing
+import zc.buildout.testing
+import zc.recipe.egg.tests
+
+def setUp(test):
+    zc.recipe.egg.tests.setUp(test)
+    zc.buildout.testing.install_develop('z3c.recipe.egg', test)
+    shutil.copytree(os.path.join(os.path.dirname(__file__), 'foo'),
+                    'foo')
+    shutil.copytree(os.path.join(os.path.dirname(__file__), 'bar'),
+                    'bar')
+
+def test_suite():
+    return doctest.DocFileSuite(
+        '../setup.txt',
+        '../editable.txt',
+        setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+        optionflags=doctest.REPORT_NDIFF,
+        checker=renormalizing.RENormalizing([
+                zc.buildout.testing.normalize_path,]))
+
+if __name__ == '__main__':
+    unittest.main(defaultTest='test_suite')



More information about the Checkins mailing list