diff options
Diffstat (limited to 'Lib/test/test_script_helper.py')
-rwxr-xr-x | Lib/test/test_script_helper.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Lib/test/test_script_helper.py b/Lib/test/test_script_helper.py index ea73fd8..da61265 100755 --- a/Lib/test/test_script_helper.py +++ b/Lib/test/test_script_helper.py @@ -1,7 +1,10 @@ """Unittests for test.script_helper. Who tests the test helper?""" +import subprocess +import sys from test import script_helper import unittest +from unittest import mock class TestScriptHelper(unittest.TestCase): @@ -31,5 +34,43 @@ class TestScriptHelper(unittest.TestCase): msg='unexpected command line.') +class TestScriptHelperEnvironment(unittest.TestCase): + """Code coverage for _interpreter_requires_environment().""" + + def setUp(self): + self.assertTrue( + hasattr(script_helper, '__cached_interp_requires_environment')) + # Reset the private cached state. + script_helper.__dict__['__cached_interp_requires_environment'] = None + + def tearDown(self): + # Reset the private cached state. + script_helper.__dict__['__cached_interp_requires_environment'] = None + + @mock.patch('subprocess.check_call') + def test_interpreter_requires_environment_true(self, mock_check_call): + mock_check_call.side_effect = subprocess.CalledProcessError('', '') + self.assertTrue(script_helper._interpreter_requires_environment()) + self.assertTrue(script_helper._interpreter_requires_environment()) + self.assertEqual(1, mock_check_call.call_count) + + @mock.patch('subprocess.check_call') + def test_interpreter_requires_environment_false(self, mock_check_call): + # The mocked subprocess.check_call fakes a no-error process. + script_helper._interpreter_requires_environment() + self.assertFalse(script_helper._interpreter_requires_environment()) + self.assertEqual(1, mock_check_call.call_count) + + @mock.patch('subprocess.check_call') + def test_interpreter_requires_environment_details(self, mock_check_call): + script_helper._interpreter_requires_environment() + self.assertFalse(script_helper._interpreter_requires_environment()) + self.assertFalse(script_helper._interpreter_requires_environment()) + self.assertEqual(1, mock_check_call.call_count) + check_call_command = mock_check_call.call_args[0][0] + self.assertEqual(sys.executable, check_call_command[0]) + self.assertIn('-E', check_call_command) + + if __name__ == '__main__': unittest.main() |