summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_script_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_script_helper.py')
-rwxr-xr-xLib/test/test_script_helper.py41
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()