mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	 fad46e19b4
			
		
	
	
		fad46e19b4
		
	
	
	
	
		
			
			Running with regrtest does not show spurious output or unrestored sys.std* objects; sometimes running with make test is different, I’ll watch the buildbots. In addition, update the create module to use logging.
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests for packaging.run."""
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| from io import StringIO
 | |
| 
 | |
| from packaging import install
 | |
| from packaging.tests import unittest, support
 | |
| from packaging.run import main
 | |
| 
 | |
| from test.script_helper import assert_python_ok
 | |
| 
 | |
| # setup script that uses __file__
 | |
| setup_using___file__ = """\
 | |
| __file__
 | |
| 
 | |
| from packaging.run import setup
 | |
| setup()
 | |
| """
 | |
| 
 | |
| setup_prints_cwd = """\
 | |
| import os
 | |
| print os.getcwd()
 | |
| 
 | |
| from packaging.run import setup
 | |
| setup()
 | |
| """
 | |
| 
 | |
| 
 | |
| class RunTestCase(support.TempdirManager,
 | |
|                   support.LoggingCatcher,
 | |
|                   unittest.TestCase):
 | |
| 
 | |
|     def setUp(self):
 | |
|         super(RunTestCase, self).setUp()
 | |
|         self.old_argv = sys.argv, sys.argv[:]
 | |
| 
 | |
|     def tearDown(self):
 | |
|         sys.argv = self.old_argv[0]
 | |
|         sys.argv[:] = self.old_argv[1]
 | |
|         super(RunTestCase, self).tearDown()
 | |
| 
 | |
|     # TODO restore the tests removed six months ago and port them to pysetup
 | |
| 
 | |
|     def test_install(self):
 | |
|         # making sure install returns 0 or 1 exit codes
 | |
|         project = os.path.join(os.path.dirname(__file__), 'package.tgz')
 | |
|         install_path = self.mkdtemp()
 | |
|         old_get_path = install.get_path
 | |
|         install.get_path = lambda path: install_path
 | |
|         old_mod = os.stat(install_path).st_mode
 | |
|         os.chmod(install_path, 0)
 | |
|         old_stderr = sys.stderr
 | |
|         sys.stderr = StringIO()
 | |
|         try:
 | |
|             self.assertFalse(install.install(project))
 | |
|             self.assertEqual(main(['install', 'blabla']), 1)
 | |
|         finally:
 | |
|             sys.stderr = old_stderr
 | |
|             os.chmod(install_path, old_mod)
 | |
|             install.get_path = old_get_path
 | |
| 
 | |
|     def test_show_help(self):
 | |
|         # smoke test, just makes sure some help is displayed
 | |
|         status, out, err = assert_python_ok('-m', 'packaging.run', '--help')
 | |
|         self.assertEqual(status, 0)
 | |
|         self.assertGreater(out, b'')
 | |
|         self.assertEqual(err, b'')
 | |
| 
 | |
| 
 | |
| def test_suite():
 | |
|     return unittest.makeSuite(RunTestCase)
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     unittest.main(defaultTest="test_suite")
 |