[Python-checkins] distutils2: fix pysetup tests

tarek.ziade python-checkins at python.org
Sun Mar 13 20:56:01 CET 2011


http://hg.python.org/distutils2/rev/6c3d67ed3adb
changeset:   1117:6c3d67ed3adb
user:        Tarek Ziade <tarek at ziade.org>
date:        Sun Mar 13 15:52:26 2011 -0400
summary:
  fix pysetup tests

files:
  distutils2/command/build_py.py
  distutils2/tests/test_config.py
  distutils2/tests/test_uninstall.py

diff --git a/distutils2/command/build_py.py b/distutils2/command/build_py.py
--- a/distutils2/command/build_py.py
+++ b/distutils2/command/build_py.py
@@ -229,7 +229,10 @@
         self.check_package(package, package_dir)
         module_files = glob(os.path.join(package_dir, "*.py"))
         modules = []
-        setup_script = os.path.abspath(self.distribution.script_name)
+        if self.distribution.script_name is not None:
+            setup_script = os.path.abspath(self.distribution.script_name)
+        else:
+            setup_script = None
 
         for f in module_files:
             abs_f = os.path.abspath(f)
diff --git a/distutils2/tests/test_config.py b/distutils2/tests/test_config.py
--- a/distutils2/tests/test_config.py
+++ b/distutils2/tests/test_config.py
@@ -3,6 +3,8 @@
 import os
 import sys
 from StringIO import StringIO
+import tempfile
+import shutil
 
 from distutils2.tests import unittest, support, run_unittest
 from distutils2.command.sdist import sdist
@@ -162,7 +164,7 @@
         super(ConfigTestCase, self).setUp()
         self.addCleanup(setattr, sys, 'stdout', sys.stdout)
         self.addCleanup(setattr, sys, 'stderr', sys.stderr)
-        sys.stdout = sys.stderr = StringIO()
+        #sys.stdout = sys.stderr = StringIO()
 
         self.addCleanup(os.chdir, os.getcwd())
         tempdir = self.mkdtemp()
@@ -180,11 +182,17 @@
 
     def run_setup(self, *args):
         # run setup with args
-        args = ['', 'run'] + list(args)
+        args = ['run'] + list(args)
         from distutils2.run import main
         dist = main(args)
         return dist
 
+    def _get_metadata(self, name='version'):
+        from distutils2.dist import Distribution
+        dist = Distribution()
+        dist.parse_config_files()
+        return dist, dist.metadata[name]
+
     def test_config(self):
         self.write_setup()
         self.write_file('README', 'yeah')
@@ -196,10 +204,10 @@
         self.write_file('init_script', '')
 
         # try to load the metadata now
-        dist = self.run_setup('--version')
+        dist, version = self._get_metadata()
 
         # sanity check
-        self.assertEqual(sys.stdout.getvalue(), '0.6.4.dev1' + os.linesep)
+        self.assertEqual(version, '0.6.4.dev1')
 
         # check what was done
         self.assertEqual(dist.metadata['Author'], 'Carl Meyer')
@@ -271,21 +279,20 @@
         self.write_setup({'description-file': 'README  CHANGES'})
         self.write_file('README', 'yeah')
         self.write_file('CHANGES', 'changelog2')
-        dist = self.run_setup('--version')
+        dist, version = self._get_metadata()
         self.assertEqual(dist.metadata.requires_files, ['README', 'CHANGES'])
 
     def test_multiline_description_file(self):
         self.write_setup({'description-file': 'README\n  CHANGES'})
         self.write_file('README', 'yeah')
         self.write_file('CHANGES', 'changelog')
-        dist = self.run_setup('--version')
-        self.assertEqual(dist.metadata['description'], 'yeah\nchangelog')
+        dist, desc = self._get_metadata('description')
+        self.assertEqual(desc, 'yeah\nchangelog')
         self.assertEqual(dist.metadata.requires_files, ['README', 'CHANGES'])
 
     def test_parse_extensions_in_config(self):
         self.write_file('setup.cfg', EXT_SETUP_CFG)
-        dist = self.run_setup('--version')
-
+        dist, version = self._get_metadata()
         ext_modules = dict((mod.name, mod) for mod in dist.ext_modules)
         self.assertEqual(len(ext_modules), 2)
         ext = ext_modules.get('one.speed_coconuts')
@@ -329,7 +336,7 @@
             os.mkdir(pkg)
             self.write_file(os.path.join(pkg, '__init__.py'), '#')
 
-        dist = self.run_setup('--version')
+        dist, version = self._get_metadata()
         cmd = sdist(dist)
         cmd.finalize_options()
         cmd.get_file_list()
@@ -353,8 +360,8 @@
             os.mkdir(pkg)
             self.write_file(os.path.join(pkg, '__init__.py'), '#')
 
-        dist = self.run_setup('--description')
-        self.assertIn('yeah\nyeah\n', sys.stdout.getvalue())
+        dist, desc = self._get_metadata('description')
+        self.assertIn('yeah\nyeah', desc)
 
         cmd = sdist(dist)
         cmd.finalize_options()
@@ -363,7 +370,8 @@
 
         self.write_setup({'description-file': 'README\n  README2',
                           'extra-files': '\n  README2\n    README'})
-        dist = self.run_setup('--description')
+        dist, desc = self._get_metadata('description')
+
         cmd = sdist(dist)
         cmd.finalize_options()
         cmd.get_file_list()
@@ -387,7 +395,11 @@
             self.write_file(os.path.join(pkg, '__init__.py'), '#')
 
         # try to run the install command to see if foo is called
-        dist = self.run_setup('install_dist')
+        tmpdir = tempfile.mkdtemp()
+        try:
+            dist = self.run_setup('install_dist', '--root=%s' % tmpdir)
+        finally:
+            shutil.rmtree(tmpdir)
 
         self.assertEqual(dist.foo_was_here, 1)
 
diff --git a/distutils2/tests/test_uninstall.py b/distutils2/tests/test_uninstall.py
--- a/distutils2/tests/test_uninstall.py
+++ b/distutils2/tests/test_uninstall.py
@@ -33,7 +33,7 @@
 
     def run_setup(self, *args):
         # run setup with args
-        args = ['', 'run'] + list(args)
+        args = ['run'] + list(args)
         from distutils2.run import main
         dist = main(args)
         return dist

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


More information about the Python-checkins mailing list