[Checkins] SVN: zc.sourcerelease/trunk/src/zc/sourcerelease/ Symbolic links in projects are preserved.

jim cvs-admin at zope.org
Mon Dec 17 23:16:29 UTC 2012


Log message for revision 128727:
  Symbolic links in projects are preserved.

Changed:
  U   zc.sourcerelease/trunk/src/zc/sourcerelease/CHANGES.txt
  U   zc.sourcerelease/trunk/src/zc/sourcerelease/__init__.py
  U   zc.sourcerelease/trunk/src/zc/sourcerelease/tests.py

-=-
Modified: zc.sourcerelease/trunk/src/zc/sourcerelease/CHANGES.txt
===================================================================
--- zc.sourcerelease/trunk/src/zc/sourcerelease/CHANGES.txt	2012-12-17 22:09:14 UTC (rev 128726)
+++ zc.sourcerelease/trunk/src/zc/sourcerelease/CHANGES.txt	2012-12-17 23:16:29 UTC (rev 128727)
@@ -8,6 +8,7 @@
 - Added test extra to declare test dependency on `zope.testing`.
 - One test currently fails with `zc.buildout` >=1.5.0.
   So the versions of packages that depend on it are pinned.
+- Symbolic links in projects are preserved.
 
 
 0.3.1 (2009-09-25)

Modified: zc.sourcerelease/trunk/src/zc/sourcerelease/__init__.py
===================================================================
--- zc.sourcerelease/trunk/src/zc/sourcerelease/__init__.py	2012-12-17 22:09:14 UTC (rev 128726)
+++ zc.sourcerelease/trunk/src/zc/sourcerelease/__init__.py	2012-12-17 23:16:29 UTC (rev 128727)
@@ -86,10 +86,10 @@
     try:
 
         if url.startswith('file://'):
-            shutil.copytree(urlparse.urlparse(url)[2], co1)
+            shutil.copytree(urlparse.urlparse(url)[2], co1, symlinks=True)
         else:
             _system('svn', 'export', url, co1)
-        shutil.copytree(co1, co2)
+        shutil.copytree(co1, co2, symlinks=True)
         cache = os.path.join(co2, 'release-distributions')
         os.mkdir(cache)
         buildout = zc.buildout.buildout.Buildout(
@@ -128,8 +128,8 @@
         for dist in dists:
             if os.path.isdir(dist):
                 shutil.copytree(dist,
-                                os.path.join(eggs, os.path.basename(dist))
-                                )
+                                os.path.join(eggs, os.path.basename(dist)),
+                                symlinks=True)
             else:
                 shutil.copy(dist, eggs)
 

Modified: zc.sourcerelease/trunk/src/zc/sourcerelease/tests.py
===================================================================
--- zc.sourcerelease/trunk/src/zc/sourcerelease/tests.py	2012-12-17 22:09:14 UTC (rev 128726)
+++ zc.sourcerelease/trunk/src/zc/sourcerelease/tests.py	2012-12-17 23:16:29 UTC (rev 128727)
@@ -25,7 +25,41 @@
 
 import zc.buildout.testing
 
+def test_symbolic_links():
+    """
+    >>> mkdir('sample')
+    >>> sample = join(sample_buildout, 'sample')
+    >>> write(sample, 'buildout.cfg',
+    ... '''
+    ... [buildout]
+    ... parts = sample
+    ... find-links = %(link_server)s
+    ...
+    ... [sample]
+    ... recipe = zc.recipe.egg
+    ... eggs = sample1
+    ... ''' % globals())
 
+    >>> os.symlink('./buildout.cfg', join(sample, 'x'))
+
+    >>> print system(join('bin', 'buildout-source-release')
+    ...        +' file://'+sample+' buildout.cfg'),
+    ... # doctest: +ELLIPSIS
+    Creating source release in sample.tgz
+    ...
+    >>> test = mkdir('test')
+    >>> import tarfile
+    >>> tf = tarfile.open('sample.tgz', 'r:gz')
+    >>> for name in tf.getnames():
+    ...   tf.extract(name, 'test')
+    >>> tf.close()
+
+    >>> os.readlink(join('test', 'sample', 'x'))
+    'buildout.cfg'
+
+    """
+
+
 def mkdist(dest, name, **kw):
     options = dict(name=name, version='1.0',
                    url='http://www.zope.org',
@@ -136,6 +170,16 @@
                 (re.compile(r'-\S+-py'), ''),
                 ]),
             ),
+        doctest.DocTestSuite(
+            setUp=setUp, tearDown=zc.buildout.testing.buildoutTearDown,
+            checker=renormalizing.RENormalizing([
+                (re.compile(r'distribute(-?(?:\w|[.-])+\.egg)'),
+                    r'setuptools\1'),
+                zc.buildout.testing.normalize_path,
+                zc.buildout.testing.normalize_egg_py,
+                (re.compile(r'-\S+-py'), ''),
+                ]),
+            ),
         ))
 
 if __name__ == '__main__':



More information about the checkins mailing list