]> granicus.if.org Git - python/commitdiff
Make the stdlib test suite helper test.script_helper._assert_python no longer
authorGregory P. Smith <greg@krypto.org>
Thu, 5 Feb 2015 01:16:30 +0000 (17:16 -0800)
committerGregory P. Smith <greg@krypto.org>
Thu, 5 Feb 2015 01:16:30 +0000 (17:16 -0800)
pass -I or -E to the child process by default when the environment is required
for the child process interpreter to function properly.

1  2 
Lib/test/script_helper.py
Lib/test/test_script_helper.py

index 619752ea8905b8e1830effeaa3d41505924be1b1,8c599d1b04bc01bed4cc451edd5243c110356279..5531a34b622a6eb411acfe01c938a2bd5d3dd485
@@@ -52,6 -52,7 +52,7 @@@ def interpreter_requires_environment()
  
  # Executing the interpreter in a subprocess
  def _assert_python(expected_success, *args, **env_vars):
 -    env_required = _interpreter_requires_environment()
++    env_required = interpreter_requires_environment()
      if '__isolated' in env_vars:
          isolated = env_vars.pop('__isolated')
      else:
index a10e80122c10e6fc0b9bb88ff8aa33d30b97a26a,7540e2e99bff9fc9530b18aee02e1d3ba9c4d30d..74333c9db8fc5d7703440083ea61ba7998bb4ea3
@@@ -33,9 -33,42 +33,42 @@@ class TestScriptHelper(unittest.TestCas
          self.assertIn('import sys; sys.exit(0)', error_msg,
                        msg='unexpected command line.')
  
 -                               '_interpreter_requires_environment',
+     @mock.patch('subprocess.Popen')
+     def test_assert_python_isolated_when_env_not_required(self, mock_popen):
+         with mock.patch.object(script_helper,
 -                               '_interpreter_requires_environment',
++                               'interpreter_requires_environment',
+                                return_value=False) as mock_ire_func:
+             mock_popen.side_effect = RuntimeError('bail out of unittest')
+             try:
+                 script_helper._assert_python(True, '-c', 'None')
+             except RuntimeError as err:
+                 self.assertEqual('bail out of unittest', err.args[0])
+             self.assertEqual(1, mock_popen.call_count)
+             self.assertEqual(1, mock_ire_func.call_count)
+             popen_command = mock_popen.call_args[0][0]
+             self.assertEqual(sys.executable, popen_command[0])
+             self.assertIn('None', popen_command)
+             self.assertIn('-I', popen_command)
+             self.assertNotIn('-E', popen_command)  # -I overrides this
+     @mock.patch('subprocess.Popen')
+     def test_assert_python_not_isolated_when_env_is_required(self, mock_popen):
+         """Ensure that -I is not passed when the environment is required."""
+         with mock.patch.object(script_helper,
++                               'interpreter_requires_environment',
+                                return_value=True) as mock_ire_func:
+             mock_popen.side_effect = RuntimeError('bail out of unittest')
+             try:
+                 script_helper._assert_python(True, '-c', 'None')
+             except RuntimeError as err:
+                 self.assertEqual('bail out of unittest', err.args[0])
+             popen_command = mock_popen.call_args[0][0]
+             self.assertNotIn('-I', popen_command)
+             self.assertNotIn('-E', popen_command)
  
  class TestScriptHelperEnvironment(unittest.TestCase):
 -    """Code coverage for _interpreter_requires_environment()."""
 +    """Code coverage for interpreter_requires_environment()."""
  
      def setUp(self):
          self.assertTrue(