]> granicus.if.org Git - python/commitdiff
improved distutils test coverage: now the DEBUG mode is covered too (will help fix...
authorTarek Ziadé <ziade.tarek@gmail.com>
Mon, 21 Sep 2009 12:19:07 +0000 (12:19 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Mon, 21 Sep 2009 12:19:07 +0000 (12:19 +0000)
Lib/distutils/tests/test_ccompiler.py
Lib/distutils/tests/test_cmd.py
Lib/distutils/tests/test_core.py
Lib/distutils/tests/test_filelist.py
Lib/distutils/tests/test_install.py

index 58c8c5da40a191fb39829de522ec9abe121465ac..2c219b7b17864dabaaa0e5a7d0013b9776baecc8 100644 (file)
@@ -1,8 +1,10 @@
 """Tests for distutils.ccompiler."""
 import os
 import unittest
+from test.test_support import captured_stdout
 
-from distutils.ccompiler import gen_lib_options
+from distutils.ccompiler import gen_lib_options, CCompiler
+from distutils import debug
 
 class FakeCompiler(object):
     def library_dir_option(self, dir):
@@ -30,6 +32,26 @@ class CCompilerTestCase(unittest.TestCase):
                   '-lname2']
         self.assertEquals(opts, wanted)
 
+    def test_debug_print(self):
+
+        class MyCCompiler(CCompiler):
+            executables = {}
+
+        compiler = MyCCompiler()
+        with captured_stdout() as stdout:
+            compiler.debug_print('xxx')
+        stdout.seek(0)
+        self.assertEquals(stdout.read(), '')
+
+        debug.DEBUG = True
+        try:
+            with captured_stdout() as stdout:
+                compiler.debug_print('xxx')
+            stdout.seek(0)
+            self.assertEquals(stdout.read(), 'xxx\n')
+        finally:
+            debug.DEBUG = False
+
 def test_suite():
     return unittest.makeSuite(CCompilerTestCase)
 
index d6438b5ea125dd1594407f06d0091cbbf42611a4..2174efbf64e277b2bfb2e655dbb4ceb01c3c9d68 100644 (file)
@@ -1,10 +1,12 @@
 """Tests for distutils.cmd."""
 import unittest
 import os
+from test.test_support import captured_stdout
 
 from distutils.cmd import Command
 from distutils.dist import Distribution
 from distutils.errors import DistutilsOptionError
+from distutils import debug
 
 class MyCmd(Command):
     def initialize_options(self):
@@ -102,6 +104,22 @@ class CommandTestCase(unittest.TestCase):
         cmd.option2 = 'xxx'
         self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
 
+    def test_debug_print(self):
+        cmd = self.cmd
+        with captured_stdout() as stdout:
+            cmd.debug_print('xxx')
+        stdout.seek(0)
+        self.assertEquals(stdout.read(), '')
+
+        debug.DEBUG = True
+        try:
+            with captured_stdout() as stdout:
+                cmd.debug_print('xxx')
+            stdout.seek(0)
+            self.assertEquals(stdout.read(), 'xxx\n')
+        finally:
+            debug.DEBUG = False
+
 def test_suite():
     return unittest.makeSuite(CommandTestCase)
 
index e481e8de39a7fda907571ab7ce627410499ee559..3c26fddbc6d93daa424294c5b9977685db9000ea 100644 (file)
@@ -6,6 +6,7 @@ import os
 import shutil
 import sys
 import test.test_support
+from test.test_support import captured_stdout
 import unittest
 
 
@@ -33,10 +34,12 @@ class CoreTestCase(unittest.TestCase):
     def setUp(self):
         self.old_stdout = sys.stdout
         self.cleanup_testfn()
+        self.old_argv = sys.argv[:]
 
     def tearDown(self):
         sys.stdout = self.old_stdout
         self.cleanup_testfn()
+        sys.argv = self.old_argv[:]
 
     def cleanup_testfn(self):
         path = test.test_support.TESTFN
@@ -73,6 +76,23 @@ class CoreTestCase(unittest.TestCase):
             output = output[:-1]
         self.assertEqual(cwd, output)
 
+    def test_debug_mode(self):
+        # this covers the code called when DEBUG is set
+        sys.argv = ['setup.py', '--name']
+        with captured_stdout() as stdout:
+            distutils.core.setup(name='bar')
+        stdout.seek(0)
+        self.assertEquals(stdout.read(), 'bar\n')
+
+        distutils.core.DEBUG = True
+        try:
+            with captured_stdout() as stdout:
+                distutils.core.setup(name='bar')
+        finally:
+            distutils.core.DEBUG = False
+        stdout.seek(0)
+        wanted = "options (after parsing config files):\n"
+        self.assertEquals(stdout.readlines()[0], wanted)
 
 def test_suite():
     return unittest.makeSuite(CoreTestCase)
index cf64c744d2a971064aef7219b6c66a2eaa072826..0cbb48bcc69992e7b984f1674e52fe3ae40ea12e 100644 (file)
@@ -1,7 +1,10 @@
 """Tests for distutils.filelist."""
 from os.path import join
 import unittest
+from test.test_support import captured_stdout
+
 from distutils.filelist import glob_to_re, FileList
+from distutils import debug
 
 MANIFEST_IN = """\
 include ok
@@ -59,6 +62,22 @@ class FileListTestCase(unittest.TestCase):
 
         self.assertEquals(file_list.files, wanted)
 
+    def test_debug_print(self):
+        file_list = FileList()
+        with captured_stdout() as stdout:
+            file_list.debug_print('xxx')
+        stdout.seek(0)
+        self.assertEquals(stdout.read(), '')
+
+        debug.DEBUG = True
+        try:
+            with captured_stdout() as stdout:
+                file_list.debug_print('xxx')
+            stdout.seek(0)
+            self.assertEquals(stdout.read(), 'xxx\n')
+        finally:
+            debug.DEBUG = False
+
 def test_suite():
     return unittest.makeSuite(FileListTestCase)
 
index d0ad5ce15911dfae7b4cd3cadcc0dd4cf83f3879..d2b8c8e9b65f598a86b6dc0092ff6b3f039989bc 100644 (file)
@@ -6,6 +6,8 @@ import sys
 import unittest
 import site
 
+from test.test_support import captured_stdout
+
 from distutils.command.install import install
 from distutils.command import install as install_module
 from distutils.command.install import INSTALL_SCHEMES
@@ -14,7 +16,6 @@ from distutils.errors import DistutilsOptionError
 
 from distutils.tests import support
 
-
 class InstallTestCase(support.TempdirManager,
                       support.LoggingSilencer,
                       unittest.TestCase):
@@ -183,6 +184,17 @@ class InstallTestCase(support.TempdirManager,
         with open(cmd.record) as f:
             self.assertEquals(len(f.readlines()), 1)
 
+    def test_debug_mode(self):
+        # this covers the code called when DEBUG is set
+        old_logs_len = len(self.logs)
+        install_module.DEBUG = True
+        try:
+            with captured_stdout() as stdout:
+                self.test_record()
+        finally:
+            install_module.DEBUG = False
+        self.assertTrue(len(self.logs) > old_logs_len)
+
 def test_suite():
     return unittest.makeSuite(InstallTestCase)