if 'input' in kwargs and kwargs['input'] is None:
# Explicitly passing input=None was previously equivalent to passing an
# empty string. That is maintained here for backwards compatibility.
- if kwargs.get('universal_newlines') or kwargs.get('text'):
+ if kwargs.get('universal_newlines') or kwargs.get('text') or kwargs.get('encoding') \
+ or kwargs.get('errors'):
empty = ''
else:
empty = b''
input=None, universal_newlines=True)
self.assertNotIn('XX', output)
+ def test_check_output_input_none_encoding_errors(self):
+ output = subprocess.check_output(
+ [sys.executable, "-c", "print('foo')"],
+ input=None, encoding='utf-8', errors='ignore')
+ self.assertIn('foo', output)
+
def test_check_output_stdout_arg(self):
# check_output() refuses to accept 'stdout' argument
with self.assertRaises(ValueError) as c: