mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 b344dd06c8
			
		
	
	
		b344dd06c8
		
	
	
	
	
		
			
			svn+ssh://pythondev@svn.python.org/python/branches/py3k The missing NEWS entries correspond to changes that were made before 3.1.3, but I think it’s not usual to edit entries of released versions, so I put them at the top. ........ r86236 | eric.araujo | 2010-11-06 03:44:43 +0100 (sam., 06 nov. 2010) | 2 lines Make sure each test can be run standalone (./python Lib/distutils/tests/x.py) ........ r86240 | eric.araujo | 2010-11-06 05:11:59 +0100 (sam., 06 nov. 2010) | 2 lines Prevent ResourceWarnings in test_gettext ........ r86332 | eric.araujo | 2010-11-08 19:15:17 +0100 (lun., 08 nov. 2010) | 4 lines Add missing NEWS entry for a fix committed by Senthil. All recent modifications to distutils should now be covered in NEWS. ........ r86340 | eric.araujo | 2010-11-08 22:48:23 +0100 (lun., 08 nov. 2010) | 2 lines This was actually fixed for the previous alpha. ........ r87271 | eric.araujo | 2010-12-15 20:09:58 +0100 (mer., 15 déc. 2010) | 2 lines Improve trace documentation (#9264). Patch by Eli Bendersky. ........ r87273 | eric.araujo | 2010-12-15 20:30:15 +0100 (mer., 15 déc. 2010) | 2 lines Use nested method directives, rewrap long lines, fix whitespace. ........ r87447 | eric.araujo | 2010-12-23 20:13:05 +0100 (jeu., 23 déc. 2010) | 2 lines Fix typo in superclass method name ........
		
			
				
	
	
		
			108 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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
 | |
| 
 | |
| # 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()
 | |
| """
 | |
| 
 | |
| 
 | |
| 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[:]
 | |
| 
 | |
|     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_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())
 |