PATH:
opt
/
bitninja-python-dojo
/
embedded
/
lib
/
python3.9
/
distutils
/
tests
"""Tests for distutils.core.""" import io import distutils.core import os import shutil import sys import test.support from test.support import captured_stdout, run_unittest import unittest from distutils.tests import support from distutils import log # setup script that uses __file__ setup_using___file__ = """\ __file__ from distutils.core import setup setup() """ setup_prints_cwd = """\ import os print(os.getcwd()) from distutils.core import setup setup() """ setup_does_nothing = """\ from distutils.core import setup setup() """ setup_defines_subclass = """\ from distutils.core import setup from distutils.command.install import install as _install class install(_install): sub_commands = _install.sub_commands + ['cmd'] setup(cmdclass={'install': install}) """ class CoreTestCase(support.EnvironGuard, unittest.TestCase): def setUp(self): super(CoreTestCase, self).setUp() self.old_stdout = sys.stdout self.cleanup_testfn() self.old_argv = sys.argv, sys.argv[:] self.addCleanup(log.set_threshold, log._global_log.threshold) def tearDown(self): sys.stdout = self.old_stdout self.cleanup_testfn() sys.argv = self.old_argv[0] sys.argv[:] = self.old_argv[1] super(CoreTestCase, self).tearDown() def cleanup_testfn(self): path = test.support.TESTFN if os.path.isfile(path): os.remove(path) elif os.path.isdir(path): shutil.rmtree(path) def write_setup(self, text, path=test.support.TESTFN): f = open(path, "w") try: f.write(text) finally: f.close() return path def test_run_setup_provides_file(self): # Make sure the script can use __file__; if that's missing, the test # setup.py script will raise NameError. distutils.core.run_setup( self.write_setup(setup_using___file__)) def test_run_setup_preserves_sys_argv(self): # Make sure run_setup does not clobber sys.argv argv_copy = sys.argv.copy() distutils.core.run_setup( self.write_setup(setup_does_nothing)) self.assertEqual(sys.argv, argv_copy) def test_run_setup_defines_subclass(self): # Make sure the script can use __file__; if that's missing, the test # setup.py script will raise NameError. dist = distutils.core.run_setup( self.write_setup(setup_defines_subclass)) install = dist.get_command_obj('install') self.assertIn('cmd', install.sub_commands) def test_run_setup_uses_current_dir(self): # This tests that the setup script is run with the current directory # as its own current directory; this was temporarily broken by a # previous patch when TESTFN did not use the current directory. sys.stdout = io.StringIO() cwd = os.getcwd() # Create a directory and write the setup.py file there: os.mkdir(test.support.TESTFN) setup_py = os.path.join(test.support.TESTFN, "setup.py") distutils.core.run_setup( self.write_setup(setup_prints_cwd, path=setup_py)) output = sys.stdout.getvalue() if output.endswith("\n"): 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.assertEqual(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.assertEqual(stdout.readlines()[0], wanted) def test_suite(): return unittest.makeSuite(CoreTestCase) if __name__ == "__main__": run_unittest(test_suite())
[-] test_log.py
[edit]
[-] test_spawn.py
[edit]
[-] test_bdist_dumb.py
[edit]
[-] test_util.py
[edit]
[-] xxmodule.c
[edit]
[-] test_msvc9compiler.py
[edit]
[+]
..
[-] test_dir_util.py
[edit]
[-] test_cmd.py
[edit]
[-] test_dep_util.py
[edit]
[-] test_archive_util.py
[edit]
[-] test_file_util.py
[edit]
[-] test_build_scripts.py
[edit]
[-] test_bdist_rpm.py
[edit]
[-] test_install_lib.py
[edit]
[-] test_build_ext.py
[edit]
[-] test_version.py
[edit]
[-] test_register.py
[edit]
[-] test_text_file.py
[edit]
[-] test_upload.py
[edit]
[-] test_sysconfig.py
[edit]
[-] test_bdist_msi.py
[edit]
[-] test_dist.py
[edit]
[-] support.py
[edit]
[-] test_install.py
[edit]
[-] test_install_scripts.py
[edit]
[+]
__pycache__
[-] test_cygwinccompiler.py
[edit]
[-] test_bdist.py
[edit]
[-] test_install_headers.py
[edit]
[-] test_build_py.py
[edit]
[-] test_build.py
[edit]
[-] test_config_cmd.py
[edit]
[-] test_versionpredicate.py
[edit]
[-] __init__.py
[edit]
[-] test_core.py
[edit]
[-] includetest.rst
[edit]
[-] test_filelist.py
[edit]
[-] test_build_clib.py
[edit]
[-] test_extension.py
[edit]
[-] test_install_data.py
[edit]
[-] test_unixccompiler.py
[edit]
[-] test_sdist.py
[edit]
[-] test_check.py
[edit]
[-] test_config.py
[edit]
[-] test_msvccompiler.py
[edit]
[-] test_clean.py
[edit]
[-] test_bdist_wininst.py
[edit]
[-] Setup.sample
[edit]