Download lib/python3.9/distutils/tests/test_core.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 4.08 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/distutils/tests/test_core.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/distutils/tests/test_core.py
-
curl -L -o test_core.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/distutils/tests/test_core.py
4.08 kB
| """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()) | |