mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Merged revisions 74988 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r74988 | tarek.ziade | 2009-09-21 14:19:07 +0200 (Mon, 21 Sep 2009) | 1 line improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch) ........
This commit is contained in:
		
							parent
							
								
									eb097fca52
								
							
						
					
					
						commit
						03d5d08798
					
				
					 7 changed files with 97 additions and 6 deletions
				
			
		|  | @ -157,7 +157,7 @@ def dump_options(self, header=None, indent=""): | |||
|         self.announce(indent + header, level=log.INFO) | ||||
|         indent = indent + "  " | ||||
|         for (option, _, _) in self.user_options: | ||||
|             option = longopt_xlate(option) | ||||
|             option = option.translate(longopt_xlate) | ||||
|             if option[-1] == "=": | ||||
|                 option = option[:-1] | ||||
|             value = getattr(self, option) | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ | |||
| 
 | ||||
| # This is used to translate long options to legitimate Python identifiers | ||||
| # (for use as attributes of some object). | ||||
| longopt_xlate = lambda s: s.replace('-', '_') | ||||
| longopt_xlate = str.maketrans('-', '_') | ||||
| 
 | ||||
| class FancyGetopt: | ||||
|     """Wrapper around the standard 'getopt()' module that provides some | ||||
|  | @ -107,7 +107,7 @@ def get_attr_name(self, long_option): | |||
|         """Translate long option name 'long_option' to the form it | ||||
|         has as an attribute of some object: ie., translate hyphens | ||||
|         to underscores.""" | ||||
|         return longopt_xlate(long_option) | ||||
|         return long_option.translate(longopt_xlate) | ||||
| 
 | ||||
|     def _check_alias_dict(self, aliases, what): | ||||
|         assert isinstance(aliases, dict) | ||||
|  | @ -432,7 +432,7 @@ def translate_longopt(opt): | |||
|     """Convert a long option name to a valid Python identifier by | ||||
|     changing "-" to "_". | ||||
|     """ | ||||
|     return longopt_xlate(opt) | ||||
|     return opt.translate(longopt_xlate) | ||||
| 
 | ||||
| 
 | ||||
| class OptionDummy: | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| """Tests for distutils.ccompiler.""" | ||||
| import os | ||||
| import unittest | ||||
| from 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 @@ def test_gen_lib_options(self): | |||
|                   '-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) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,10 +1,12 @@ | |||
| """Tests for distutils.cmd.""" | ||||
| import unittest | ||||
| import os | ||||
| from 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 @@ def test_ensure_dirname(self): | |||
|         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) | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ | |||
| import shutil | ||||
| import sys | ||||
| import test.support | ||||
| from 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.support.TESTFN | ||||
|  | @ -73,6 +76,23 @@ def test_run_setup_uses_current_dir(self): | |||
|             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) | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| """Tests for distutils.filelist.""" | ||||
| from os.path import join | ||||
| import unittest | ||||
| from 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 @@ def test_process_template_line(self): | |||
| 
 | ||||
|         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) | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,8 @@ | |||
| import unittest | ||||
| import site | ||||
| 
 | ||||
| from 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 @@ def test_record(self): | |||
|         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) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tarek Ziadé
						Tarek Ziadé