mirror of https://github.com/python/cpython
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
|
@ -157,7 +157,7 @@ class Command:
|
||||||
self.announce(indent + header, level=log.INFO)
|
self.announce(indent + header, level=log.INFO)
|
||||||
indent = indent + " "
|
indent = indent + " "
|
||||||
for (option, _, _) in self.user_options:
|
for (option, _, _) in self.user_options:
|
||||||
option = longopt_xlate(option)
|
option = option.translate(longopt_xlate)
|
||||||
if option[-1] == "=":
|
if option[-1] == "=":
|
||||||
option = option[:-1]
|
option = option[:-1]
|
||||||
value = getattr(self, option)
|
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
|
# This is used to translate long options to legitimate Python identifiers
|
||||||
# (for use as attributes of some object).
|
# (for use as attributes of some object).
|
||||||
longopt_xlate = lambda s: s.replace('-', '_')
|
longopt_xlate = str.maketrans('-', '_')
|
||||||
|
|
||||||
class FancyGetopt:
|
class FancyGetopt:
|
||||||
"""Wrapper around the standard 'getopt()' module that provides some
|
"""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
|
"""Translate long option name 'long_option' to the form it
|
||||||
has as an attribute of some object: ie., translate hyphens
|
has as an attribute of some object: ie., translate hyphens
|
||||||
to underscores."""
|
to underscores."""
|
||||||
return longopt_xlate(long_option)
|
return long_option.translate(longopt_xlate)
|
||||||
|
|
||||||
def _check_alias_dict(self, aliases, what):
|
def _check_alias_dict(self, aliases, what):
|
||||||
assert isinstance(aliases, dict)
|
assert isinstance(aliases, dict)
|
||||||
|
@ -432,7 +432,7 @@ def translate_longopt(opt):
|
||||||
"""Convert a long option name to a valid Python identifier by
|
"""Convert a long option name to a valid Python identifier by
|
||||||
changing "-" to "_".
|
changing "-" to "_".
|
||||||
"""
|
"""
|
||||||
return longopt_xlate(opt)
|
return opt.translate(longopt_xlate)
|
||||||
|
|
||||||
|
|
||||||
class OptionDummy:
|
class OptionDummy:
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
"""Tests for distutils.ccompiler."""
|
"""Tests for distutils.ccompiler."""
|
||||||
import os
|
import os
|
||||||
import unittest
|
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):
|
class FakeCompiler(object):
|
||||||
def library_dir_option(self, dir):
|
def library_dir_option(self, dir):
|
||||||
|
@ -30,6 +32,26 @@ class CCompilerTestCase(unittest.TestCase):
|
||||||
'-lname2']
|
'-lname2']
|
||||||
self.assertEquals(opts, wanted)
|
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():
|
def test_suite():
|
||||||
return unittest.makeSuite(CCompilerTestCase)
|
return unittest.makeSuite(CCompilerTestCase)
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
"""Tests for distutils.cmd."""
|
"""Tests for distutils.cmd."""
|
||||||
import unittest
|
import unittest
|
||||||
import os
|
import os
|
||||||
|
from test.support import captured_stdout
|
||||||
|
|
||||||
from distutils.cmd import Command
|
from distutils.cmd import Command
|
||||||
from distutils.dist import Distribution
|
from distutils.dist import Distribution
|
||||||
from distutils.errors import DistutilsOptionError
|
from distutils.errors import DistutilsOptionError
|
||||||
|
from distutils import debug
|
||||||
|
|
||||||
class MyCmd(Command):
|
class MyCmd(Command):
|
||||||
def initialize_options(self):
|
def initialize_options(self):
|
||||||
|
@ -102,6 +104,22 @@ class CommandTestCase(unittest.TestCase):
|
||||||
cmd.option2 = 'xxx'
|
cmd.option2 = 'xxx'
|
||||||
self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
|
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():
|
def test_suite():
|
||||||
return unittest.makeSuite(CommandTestCase)
|
return unittest.makeSuite(CommandTestCase)
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import test.support
|
import test.support
|
||||||
|
from test.support import captured_stdout
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,10 +34,12 @@ class CoreTestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.old_stdout = sys.stdout
|
self.old_stdout = sys.stdout
|
||||||
self.cleanup_testfn()
|
self.cleanup_testfn()
|
||||||
|
self.old_argv = sys.argv[:]
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
sys.stdout = self.old_stdout
|
sys.stdout = self.old_stdout
|
||||||
self.cleanup_testfn()
|
self.cleanup_testfn()
|
||||||
|
sys.argv = self.old_argv[:]
|
||||||
|
|
||||||
def cleanup_testfn(self):
|
def cleanup_testfn(self):
|
||||||
path = test.support.TESTFN
|
path = test.support.TESTFN
|
||||||
|
@ -73,6 +76,23 @@ class CoreTestCase(unittest.TestCase):
|
||||||
output = output[:-1]
|
output = output[:-1]
|
||||||
self.assertEqual(cwd, output)
|
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():
|
def test_suite():
|
||||||
return unittest.makeSuite(CoreTestCase)
|
return unittest.makeSuite(CoreTestCase)
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
"""Tests for distutils.filelist."""
|
"""Tests for distutils.filelist."""
|
||||||
from os.path import join
|
from os.path import join
|
||||||
import unittest
|
import unittest
|
||||||
|
from test.support import captured_stdout
|
||||||
|
|
||||||
from distutils.filelist import glob_to_re, FileList
|
from distutils.filelist import glob_to_re, FileList
|
||||||
|
from distutils import debug
|
||||||
|
|
||||||
MANIFEST_IN = """\
|
MANIFEST_IN = """\
|
||||||
include ok
|
include ok
|
||||||
|
@ -59,6 +62,22 @@ class FileListTestCase(unittest.TestCase):
|
||||||
|
|
||||||
self.assertEquals(file_list.files, wanted)
|
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():
|
def test_suite():
|
||||||
return unittest.makeSuite(FileListTestCase)
|
return unittest.makeSuite(FileListTestCase)
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ import sys
|
||||||
import unittest
|
import unittest
|
||||||
import site
|
import site
|
||||||
|
|
||||||
|
from test.support import captured_stdout
|
||||||
|
|
||||||
from distutils.command.install import install
|
from distutils.command.install import install
|
||||||
from distutils.command import install as install_module
|
from distutils.command import install as install_module
|
||||||
from distutils.command.install import INSTALL_SCHEMES
|
from distutils.command.install import INSTALL_SCHEMES
|
||||||
|
@ -14,7 +16,6 @@ from distutils.errors import DistutilsOptionError
|
||||||
|
|
||||||
from distutils.tests import support
|
from distutils.tests import support
|
||||||
|
|
||||||
|
|
||||||
class InstallTestCase(support.TempdirManager,
|
class InstallTestCase(support.TempdirManager,
|
||||||
support.LoggingSilencer,
|
support.LoggingSilencer,
|
||||||
unittest.TestCase):
|
unittest.TestCase):
|
||||||
|
@ -183,6 +184,17 @@ class InstallTestCase(support.TempdirManager,
|
||||||
with open(cmd.record) as f:
|
with open(cmd.record) as f:
|
||||||
self.assertEquals(len(f.readlines()), 1)
|
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():
|
def test_suite():
|
||||||
return unittest.makeSuite(InstallTestCase)
|
return unittest.makeSuite(InstallTestCase)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue