Commit e16bbeaf authored by Tarek Ziadé's avatar Tarek Ziadé

improved distutils test coverage: now the DEBUG mode is covered too (will help...

improved distutils test coverage: now the DEBUG mode is covered too (will help fix the issue #6954 in py3k branch)
parent 56e40eaf
"""Tests for distutils.ccompiler.""" """Tests for distutils.ccompiler."""
import os import os
import unittest 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): class FakeCompiler(object):
def library_dir_option(self, dir): def library_dir_option(self, dir):
...@@ -30,6 +32,26 @@ class CCompilerTestCase(unittest.TestCase): ...@@ -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)
......
"""Tests for distutils.cmd.""" """Tests for distutils.cmd."""
import unittest import unittest
import os import os
from test.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): ...@@ -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 ...@@ -6,6 +6,7 @@ import os
import shutil import shutil
import sys import sys
import test.test_support import test.test_support
from test.test_support import captured_stdout
import unittest import unittest
...@@ -33,10 +34,12 @@ class CoreTestCase(unittest.TestCase): ...@@ -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.test_support.TESTFN path = test.test_support.TESTFN
...@@ -73,6 +76,23 @@ class CoreTestCase(unittest.TestCase): ...@@ -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)
......
"""Tests for distutils.filelist.""" """Tests for distutils.filelist."""
from os.path import join from os.path import join
import unittest import unittest
from test.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): ...@@ -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 ...@@ -6,6 +6,8 @@ import sys
import unittest import unittest
import site import site
from test.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 ...@@ -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, ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment