def test_run_command_with_unicode(self): """Validate that it is safe to pass unicode() objects to Executive.run* methods, and they will return unicode() objects by default unless decode_output=False""" unicode_tor_input = u"WebKit \u2661 Tor Arne Vestb\u00F8!" if sys.platform == 'win32': encoding = 'mbcs' else: encoding = 'utf-8' encoded_tor = unicode_tor_input.encode(encoding) # On Windows, we expect the unicode->mbcs->unicode roundtrip to be # lossy. On other platforms, we expect a lossless roundtrip. if sys.platform == 'win32': unicode_tor_output = encoded_tor.decode(encoding) else: unicode_tor_output = unicode_tor_input executive = Executive() output = executive.run_command(cat.command_arguments(), input=unicode_tor_input) self.assertEquals(output, unicode_tor_output) output = executive.run_command( echo.command_arguments("-n", unicode_tor_input)) self.assertEquals(output, unicode_tor_output) output = executive.run_command(echo.command_arguments( "-n", unicode_tor_input), decode_output=False) self.assertEquals(output, encoded_tor) # Make sure that str() input also works. output = executive.run_command(cat.command_arguments(), input=encoded_tor, decode_output=False) self.assertEquals(output, encoded_tor) # FIXME: We should only have one run* method to test output = executive.run_and_throw_if_fail(echo.command_arguments( "-n", unicode_tor_input), quiet=True) self.assertEquals(output, unicode_tor_output) output = executive.run_and_throw_if_fail(echo.command_arguments( "-n", unicode_tor_input), quiet=True, decode_output=False) self.assertEquals(output, encoded_tor)
def test_run_command_with_unicode(self): """Validate that it is safe to pass unicode() objects to Executive.run* methods, and they will return unicode() objects by default unless decode_output=False""" unicode_tor_input = u"WebKit \u2661 Tor Arne Vestb\u00F8!" if sys.platform == "win32": encoding = "mbcs" else: encoding = "utf-8" encoded_tor = unicode_tor_input.encode(encoding) # On Windows, we expect the unicode->mbcs->unicode roundtrip to be # lossy. On other platforms, we expect a lossless roundtrip. if sys.platform == "win32": unicode_tor_output = encoded_tor.decode(encoding) else: unicode_tor_output = unicode_tor_input executive = Executive() output = executive.run_command(cat.command_arguments(), input=unicode_tor_input) self.assertEquals(output, unicode_tor_output) output = executive.run_command(echo.command_arguments("-n", unicode_tor_input)) self.assertEquals(output, unicode_tor_output) output = executive.run_command(echo.command_arguments("-n", unicode_tor_input), decode_output=False) self.assertEquals(output, encoded_tor) # Make sure that str() input also works. output = executive.run_command(cat.command_arguments(), input=encoded_tor, decode_output=False) self.assertEquals(output, encoded_tor) # FIXME: We should only have one run* method to test output = executive.run_and_throw_if_fail(echo.command_arguments("-n", unicode_tor_input), quiet=True) self.assertEquals(output, unicode_tor_output) output = executive.run_and_throw_if_fail( echo.command_arguments("-n", unicode_tor_input), quiet=True, decode_output=False ) self.assertEquals(output, encoded_tor)
def test_run_command_args_type(self): executive = Executive() self.assertRaises(AssertionError, executive.run_command, "echo") self.assertRaises(AssertionError, executive.run_command, u"echo") executive.run_command(echo.command_arguments('foo')) executive.run_command(tuple(echo.command_arguments('foo')))
def test_as_command(self): output = executive.Executive().run_command( echo.command_arguments('foo', 'bar', 'baz')) self.assertEqual(output, 'foo bar baz\n')
def test_as_command(self): output = executive.Executive().run_command(echo.command_arguments('foo', 'bar', 'baz')) self.assertEqual(output, 'foo bar baz\n')