[Python-checkins] r74991 - in python/branches/release31-maint: Lib/distutils/cmd.py Lib/distutils/fancy_getopt.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

tarek.ziade python-checkins at python.org
Mon Sep 21 15:10:06 CEST 2009


Author: tarek.ziade
Date: Mon Sep 21 15:10:05 2009
New Revision: 74991
Log:
Merged revisions 74990 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
 r74990 | tarek.ziade | 2009年09月21日 15:01:54 +0200 (2009年9月21日) | 9 lines
 
 Merged revisions 74988 via svnmerge from 
 svn+ssh://pythondev@svn.python.org/python/trunk
 
 ........
 r74988 | tarek.ziade | 2009年09月21日 14:19:07 +0200 (2009年9月21日) | 1 line
 
 improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
 ........
................
Modified:
 python/branches/release31-maint/ (props changed)
 python/branches/release31-maint/Lib/distutils/cmd.py
 python/branches/release31-maint/Lib/distutils/fancy_getopt.py
 python/branches/release31-maint/Lib/distutils/tests/test_cmd.py
 python/branches/release31-maint/Lib/distutils/tests/test_core.py
 python/branches/release31-maint/Lib/distutils/tests/test_filelist.py
 python/branches/release31-maint/Lib/distutils/tests/test_install.py
Modified: python/branches/release31-maint/Lib/distutils/cmd.py
==============================================================================
--- python/branches/release31-maint/Lib/distutils/cmd.py	(original)
+++ python/branches/release31-maint/Lib/distutils/cmd.py	Mon Sep 21 15:10:05 2009
@@ -157,7 +157,7 @@
 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)
Modified: python/branches/release31-maint/Lib/distutils/fancy_getopt.py
==============================================================================
--- python/branches/release31-maint/Lib/distutils/fancy_getopt.py	(original)
+++ python/branches/release31-maint/Lib/distutils/fancy_getopt.py	Mon Sep 21 15:10:05 2009
@@ -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 @@
 """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 @@
 """Convert a long option name to a valid Python identifier by
 changing "-" to "_".
 """
- return longopt_xlate(opt)
+ return opt.translate(longopt_xlate)
 
 
 class OptionDummy:
Modified: python/branches/release31-maint/Lib/distutils/tests/test_cmd.py
==============================================================================
--- python/branches/release31-maint/Lib/distutils/tests/test_cmd.py	(original)
+++ python/branches/release31-maint/Lib/distutils/tests/test_cmd.py	Mon Sep 21 15:10:05 2009
@@ -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 @@
 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/branches/release31-maint/Lib/distutils/tests/test_core.py
==============================================================================
--- python/branches/release31-maint/Lib/distutils/tests/test_core.py	(original)
+++ python/branches/release31-maint/Lib/distutils/tests/test_core.py	Mon Sep 21 15:10:05 2009
@@ -6,6 +6,7 @@
 import shutil
 import sys
 import test.support
+from 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.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/branches/release31-maint/Lib/distutils/tests/test_filelist.py
==============================================================================
--- python/branches/release31-maint/Lib/distutils/tests/test_filelist.py	(original)
+++ python/branches/release31-maint/Lib/distutils/tests/test_filelist.py	Mon Sep 21 15:10:05 2009
@@ -1,6 +1,9 @@
 """Tests for distutils.filelist."""
 import unittest
-from distutils.filelist import glob_to_re
+
+from distutils.filelist import glob_to_re, FileList
+from test.support import captured_stdout
+from distutils import debug
 
 class FileListTestCase(unittest.TestCase):
 
@@ -16,6 +19,22 @@
 self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]$')
 self.assertEquals(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]$')
 
+ 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/branches/release31-maint/Lib/distutils/tests/test_install.py
==============================================================================
--- python/branches/release31-maint/Lib/distutils/tests/test_install.py	(original)
+++ python/branches/release31-maint/Lib/distutils/tests/test_install.py	Mon Sep 21 15:10:05 2009
@@ -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 @@
 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

AltStyle によって変換されたページ (->オリジナル) /