[Python-checkins] distutils2: fixed filelist initialization in sdist

tarek.ziade python-checkins at python.org
Sun May 30 00:33:51 CEST 2010


tarek.ziade pushed 7394724dba67 to distutils2:

http://hg.python.org/distutils2/rev/7394724dba67
changeset:   174:7394724dba67
tag:         tip
user:        Tarek Ziade <tarek at ziade.org>
date:        Sun May 30 00:33:40 2010 +0200
summary:     fixed filelist initialization in sdist
files:       src/distutils2/command/sdist.py, src/distutils2/manifest.py, src/distutils2/tests/test_sdist.py

diff --git a/src/distutils2/command/sdist.py b/src/distutils2/command/sdist.py
--- a/src/distutils2/command/sdist.py
+++ b/src/distutils2/command/sdist.py
@@ -121,6 +121,7 @@
         self.metadata_check = 1
         self.owner = None
         self.group = None
+        self.filelist = None
 
     def _check_archive_formats(self, formats):
         supported_formats = [name for name, desc in get_archive_formats()]
@@ -152,10 +153,14 @@
         if self.dist_dir is None:
             self.dist_dir = "dist"
 
+        if self.filelist is None:
+            self.filelist = Manifest()
+
+
     def run(self):
         # 'filelist' contains the list of files that will make up the
         # manifest
-        self.filelist = Manifest()
+        self.filelist.clear()
 
         # Run sub commands
         for cmd_name in self.get_sub_commands():
@@ -200,7 +205,7 @@
         if self.use_defaults:
             self.add_defaults()
         if template_exists:
-            self.read_template()
+            self.filelist.read_template(self.template)
         if self.prune:
             self.prune_file_list()
 
diff --git a/src/distutils2/manifest.py b/src/distutils2/manifest.py
--- a/src/distutils2/manifest.py
+++ b/src/distutils2/manifest.py
@@ -54,6 +54,12 @@
         for sort_tuple in sortable_files:
             self.files.append(os.path.join(*sort_tuple))
 
+    def clear(self):
+        """Clear all collected files."""
+        self.files = []
+        if self.allfiles is not None:
+            self.allfiles = []
+
     def remove_duplicates(self):
         # Assumes list has been sorted!
         for i in range(len(self.files) - 1, 0, -1):
diff --git a/src/distutils2/tests/test_sdist.py b/src/distutils2/tests/test_sdist.py
--- a/src/distutils2/tests/test_sdist.py
+++ b/src/distutils2/tests/test_sdist.py
@@ -343,6 +343,19 @@
         finally:
             archive.close()
 
+    def test_get_file_list(self):
+        dist, cmd = self.get_cmd()
+        cmd.finalize_options()
+        cmd.template = os.path.join(self.tmp_dir, 'MANIFEST.in')
+        f = open(cmd.template, 'w')
+        try:
+            f.write('include MANIFEST.in\n')
+        finally:
+            f.close()
+
+        cmd.get_file_list()
+        self.assertIn('MANIFEST.in', cmd.filelist.files)
+
 def test_suite():
     return unittest2.makeSuite(SDistTestCase)
 

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list