/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_command_encoding.py

First attempt to merge .dev and resolve the conflicts (but tests are 
failing)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 by Canonical Ltd
2
 
# -*- coding: utf-8 -*-
 
1
# Copyright (C) 2005, 2007 Canonical Ltd
3
2
#
4
3
# This program is free software; you can redistribute it and/or modify
5
4
# it under the terms of the GNU General Public License as published by
35
34
 
36
35
 
37
36
class cmd_echo_strict(cmd_echo_exact):
38
 
    """Replace bogus unicode characters."""
 
37
    """Raise a UnicodeError for unrepresentable characters."""
39
38
 
40
39
    encoding_type = 'strict'
41
40
 
54
53
 
55
54
        register_command(cmd_echo_exact)
56
55
        try:
57
 
            self.assertEqual('foo', bzr('echo-exact', 'foo'))
 
56
            self.assertEqual('foo', bzr('echo-exact foo'))
58
57
            # This is cheating a little bit, because 'foo\xb5' shouldn't
59
58
            # get past main()
60
 
            self.assertEqual('foo\xb5', bzr('echo-exact', 'foo\xb5'))
 
59
            self.assertEqual('foo\xb5', bzr('echo-exact foo\xb5'))
61
60
            # Exact should fail to decode the string
62
 
            bzr('echo-exact', u'foo\xb5', retcode=3)
 
61
            self.assertRaises(UnicodeEncodeError,
 
62
                bzr,
 
63
                ['echo-exact', u'foo\xb5'])
63
64
        finally:
64
65
            plugin_cmds.pop('echo-exact')
65
66
 
70
71
 
71
72
        register_command(cmd_echo_strict)
72
73
        try:
73
 
            self.assertEqual('foo', bzr('echo-strict', 'foo'))
 
74
            self.assertEqual('foo', bzr('echo-strict foo'))
74
75
            self.assertEqual(u'foo\xb5'.encode('utf-8'),
75
 
                bzr('echo-strict', u'foo\xb5'))
 
76
                             bzr(['echo-strict', u'foo\xb5']))
76
77
        finally:
77
78
            plugin_cmds.pop('echo-strict')
78
79
 
83
84
 
84
85
        register_command(cmd_echo_strict)
85
86
        try:
86
 
            self.assertEqual('foo', bzr('echo-strict', 'foo'))
 
87
            self.assertEqual('foo', bzr('echo-strict foo'))
87
88
            # ascii can't encode \xb5
88
 
            bzr('echo-strict', u'foo\xb5', retcode=3)
 
89
            self.assertRaises(UnicodeEncodeError,
 
90
                bzr,
 
91
                ['echo-strict', u'foo\xb5'])
89
92
        finally:
90
93
            plugin_cmds.pop('echo-strict')
91
94
 
96
99
 
97
100
        register_command(cmd_echo_replace)
98
101
        try:
99
 
            self.assertEqual('foo', bzr('echo-replace', 'foo'))
 
102
            self.assertEqual('foo', bzr('echo-replace foo'))
100
103
            self.assertEqual(u'foo\xb5'.encode('utf-8'),
101
 
                             bzr('echo-replace', u'foo\xb5'))
 
104
                             bzr(['echo-replace', u'foo\xb5']))
102
105
        finally:
103
106
            plugin_cmds.pop('echo-replace')
104
107
 
109
112
 
110
113
        register_command(cmd_echo_replace)
111
114
        try:
112
 
            self.assertEqual('foo', bzr('echo-replace', 'foo'))
 
115
            self.assertEqual('foo', bzr('echo-replace foo'))
113
116
            # ascii can't encode \xb5
114
 
            self.assertEqual('foo?', bzr('echo-replace', u'foo\xb5'))
 
117
            self.assertEqual('foo?', bzr(['echo-replace', u'foo\xb5']))
115
118
        finally:
116
119
            plugin_cmds.pop('echo-replace')
117
120