def test_replace_utf8(self): def bzr(*args, **kwargs): kwargs["encoding"] = "utf-8" return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_replace) try: self.assertEqual("foo", bzr("echo-replace foo")) self.assertEqual(u"foo\xb5".encode("utf-8"), bzr(["echo-replace", u"foo\xb5"])) finally: plugin_cmds.remove("echo-replace")
def test_replace_ascii(self): def bzr(*args, **kwargs): kwargs["encoding"] = "ascii" return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_replace) try: self.assertEqual("foo", bzr("echo-replace foo")) # ascii can't encode \xb5 self.assertEqual("foo?", bzr(["echo-replace", u"foo\xb5"])) finally: plugin_cmds.remove("echo-replace")
def test_strict_ascii(self): def bzr(*args, **kwargs): kwargs["encoding"] = "ascii" return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_strict) try: self.assertEqual("foo", bzr("echo-strict foo")) # ascii can't encode \xb5 self.assertRaises(UnicodeEncodeError, bzr, ["echo-strict", u"foo\xb5"]) finally: plugin_cmds.remove("echo-strict")
def test_replace_utf8(self): def bzr(*args, **kwargs): kwargs['encoding'] = 'utf-8' return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_replace) try: self.assertEqual('foo', bzr('echo-replace foo')) self.assertEqual(u'foo\xb5'.encode('utf-8'), bzr(['echo-replace', u'foo\xb5'])) finally: plugin_cmds.remove('echo-replace')
def test_replace_ascii(self): def bzr(*args, **kwargs): kwargs['encoding'] = 'ascii' return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_replace) try: self.assertEqual('foo', bzr('echo-replace foo')) # ascii can't encode \xb5 self.assertEqual('foo?', bzr(['echo-replace', u'foo\xb5'])) finally: plugin_cmds.remove('echo-replace')
def test_exact(self): def bzr(*args, **kwargs): return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_exact) try: self.assertEqual("foo", bzr("echo-exact foo")) # Exact should fail to decode the string self.assertRaises(UnicodeEncodeError, bzr, ["echo-exact", u"foo\xb5"]) # Previously a non-ascii bytestring was also tested, as 'exact' # outputs bytes untouched, but needed buggy argv parsing to work finally: plugin_cmds.remove("echo-exact")
def test_strict_ascii(self): def bzr(*args, **kwargs): kwargs['encoding'] = 'ascii' return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_strict) try: self.assertEqual('foo', bzr('echo-strict foo')) # ascii can't encode \xb5 self.assertRaises(UnicodeEncodeError, bzr, ['echo-strict', u'foo\xb5']) finally: plugin_cmds.remove('echo-strict')
def test_exact(self): def bzr(*args, **kwargs): return self.run_bzr(*args, **kwargs)[0] register_command(cmd_echo_exact) try: self.assertEqual('foo', bzr('echo-exact foo')) # Exact should fail to decode the string self.assertRaises(UnicodeEncodeError, bzr, ['echo-exact', u'foo\xb5']) # Previously a non-ascii bytestring was also tested, as 'exact' # outputs bytes untouched, but needed buggy argv parsing to work finally: plugin_cmds.remove('echo-exact')