[Python-checkins] r74988 - in python/trunk/Lib/distutils/tests: test_ccompiler.py test_cmd.py test_core.py test_filelist.py test_install.py

tarek.ziade python-checkins at python.org
Mon Sep 21 14:19:07 CEST 2009


Author: tarek.ziade
Date: Mon Sep 21 14:19:07 2009
New Revision: 74988

Log:
improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)

Modified:
   python/trunk/Lib/distutils/tests/test_ccompiler.py
   python/trunk/Lib/distutils/tests/test_cmd.py
   python/trunk/Lib/distutils/tests/test_core.py
   python/trunk/Lib/distutils/tests/test_filelist.py
   python/trunk/Lib/distutils/tests/test_install.py

Modified: python/trunk/Lib/distutils/tests/test_ccompiler.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_ccompiler.py	(original)
+++ python/trunk/Lib/distutils/tests/test_ccompiler.py	Mon Sep 21 14:19:07 2009
@@ -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 @@
                   '-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)
 

Modified: python/trunk/Lib/distutils/tests/test_cmd.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_cmd.py	(original)
+++ python/trunk/Lib/distutils/tests/test_cmd.py	Mon Sep 21 14:19:07 2009
@@ -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 @@
         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)
 

Modified: python/trunk/Lib/distutils/tests/test_core.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_core.py	(original)
+++ python/trunk/Lib/distutils/tests/test_core.py	Mon Sep 21 14:19:07 2009
@@ -6,6 +6,7 @@
 import shutil
 import sys
 import test.test_support
+from test.test_support import captured_stdout
 import unittest
 
 
@@ -33,10 +34,12 @@
     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 @@
             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)

Modified: python/trunk/Lib/distutils/tests/test_filelist.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_filelist.py	(original)
+++ python/trunk/Lib/distutils/tests/test_filelist.py	Mon Sep 21 14:19:07 2009
@@ -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 @@
 
         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)
 

Modified: python/trunk/Lib/distutils/tests/test_install.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_install.py	(original)
+++ python/trunk/Lib/distutils/tests/test_install.py	Mon Sep 21 14:19:07 2009
@@ -6,6 +6,8 @@
 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.tests import support
 
-
 class InstallTestCase(support.TempdirManager,
                       support.LoggingSilencer,
                       unittest.TestCase):
@@ -183,6 +184,17 @@
         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)
 


More information about the Python-checkins mailing list