mirror of https://github.com/python/cpython
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
1d18b5b929
commit
6d2db3784a
|
@ -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 @@ class CCompilerTestCase(unittest.TestCase):
|
|||
'-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.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.test_support
|
||||
from test.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.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,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 @@ class FileListTestCase(unittest.TestCase):
|
|||
|
||||
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 sys
|
|||
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.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