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 (Mon, 21 Sep 2009) | 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 (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
14214261c4
commit
8349669824
|
@ -157,7 +157,7 @@ class Command:
|
|||
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 @@ neg_alias_re = re.compile("^(%s)=!(%s)$" % (longopt_pat, longopt_pat))
|
|||
|
||||
# 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 @@ class FancyGetopt:
|
|||
"""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,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 @@ 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)
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import os
|
|||
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 @@ 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)
|
||||
|
|
|
@ -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 @@ class FileListTestCase(unittest.TestCase):
|
|||
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)
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ import sys
|
|||
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.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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue