[Python-checkins] r69710 - in python/trunk/Lib/distutils: command/sdist.py tests/test_sdist.py

tarek.ziade python-checkins at python.org
Tue Feb 17 10:42:45 CET 2009


Author: tarek.ziade
Date: Tue Feb 17 10:42:44 2009
New Revision: 69710

Log:
#2279 added the plain path case for data_files

Modified:
   python/trunk/Lib/distutils/command/sdist.py
   python/trunk/Lib/distutils/tests/test_sdist.py

Modified: python/trunk/Lib/distutils/command/sdist.py
==============================================================================
--- python/trunk/Lib/distutils/command/sdist.py	(original)
+++ python/trunk/Lib/distutils/command/sdist.py	Tue Feb 17 10:42:44 2009
@@ -14,7 +14,7 @@
 from distutils.errors import *
 from distutils.filelist import FileList
 from distutils import log
-
+from distutils.util import convert_path
 
 def show_formats ():
     """Print all possible values for the 'formats' option (used by
@@ -311,9 +311,17 @@
 
         # getting distribution.data_files
         if self.distribution.has_data_files():
-            for dirname, filenames in self.distribution.data_files:
-                for filename in filenames:
-                    self.filelist.append(os.path.join(dirname, filename))
+            for item in self.distribution.data_files:
+                if isinstance(item, str): # plain file
+                    item = convert_path(item)
+                    if os.path.isfile(item):
+                        self.filelist.append(item)
+                else:    # a (dirname, filenames) tuple
+                    dirname, filenames = item
+                    for f in filenames:
+                        f = convert_path(os.path.join(dirname, f))
+                        if os.path.isfile(f):
+                            self.filelist.append(f)
 
         if self.distribution.has_ext_modules():
             build_ext = self.get_finalized_command('build_ext')

Modified: python/trunk/Lib/distutils/tests/test_sdist.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_sdist.py	(original)
+++ python/trunk/Lib/distutils/tests/test_sdist.py	Tue Feb 17 10:42:44 2009
@@ -26,6 +26,8 @@
 setup.py
 data%(sep)sdata.dt
 scripts%(sep)sscript.py
+some%(sep)sfile.txt
+some%(sep)sother_file.txt
 somecode%(sep)s__init__.py
 somecode%(sep)sdoc.dat
 somecode%(sep)sdoc.txt
@@ -167,7 +169,14 @@
         data_dir = join(self.tmp_dir, 'data')
         os.mkdir(data_dir)
         self.write_file((data_dir, 'data.dt'), '#')
-        dist.data_files = [('data', ['data.dt'])]
+        some_dir = join(self.tmp_dir, 'some')
+        os.mkdir(some_dir)
+        self.write_file((some_dir, 'file.txt'), '#')
+        self.write_file((some_dir, 'other_file.txt'), '#')
+
+        dist.data_files = [('data', ['data.dt', 'notexisting']),
+                           'some/file.txt',
+                           'some/other_file.txt']
 
         # adding a script
         script_dir = join(self.tmp_dir, 'scripts')
@@ -175,7 +184,6 @@
         self.write_file((script_dir, 'script.py'), '#')
         dist.scripts = [join('scripts', 'script.py')]
 
-
         cmd.formats = ['zip']
         cmd.use_defaults = True
 
@@ -194,7 +202,7 @@
             zip_file.close()
 
         # making sure everything was added
-        self.assertEquals(len(content), 8)
+        self.assertEquals(len(content), 10)
 
         # checking the MANIFEST
         manifest = open(join(self.tmp_dir, 'MANIFEST')).read()


More information about the Python-checkins mailing list