/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/test_nonascii.py

  • Committer: Martin Pool
  • Date: 2007-10-03 08:06:44 UTC
  • mto: This revision was merged to the branch mainline in revision 2901.
  • Revision ID: mbp@sourcefrog.net-20071003080644-oivy0gkg98sex0ed
Avoid internal error tracebacks on failure to lock on readonly transport (#129701).

Add new LockFailed, which doesn't imply that we failed to get it because of
contention.  Raise this if we fail to create the pending or lock directories
because of Transport errors.

UnlockableTransport is not an internal error.

ReadOnlyLockError has a message which didn't match its name or usage; it's now
deprecated and callers are updated to use LockFailed which is more appropriate.

Add zero_ninetytwo deprecation symbol.

Unify assertMatchesRe with TestCase.assertContainsRe.

When the constructor is deprecated, just say that the class is deprecated, not
the __init__ method - this works better with applyDeprecated in tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Test that various operations work in a non-ASCII environment."""
18
18
 
46
46
a_dots_d = u'a\u0308'
47
47
z_umlat_c = u'\u017d'
48
48
z_umlat_d = u'Z\u030c'
49
 
squared_c = u'\xbc' # This gets mapped to '2' if we use NFK[CD]
50
 
squared_d = u'\xbc'
51
 
quarter_c = u'\xb2' # Gets mapped to u'1\u20444' (1/4) if we use NFK[CD]
52
 
quarter_d = u'\xb2'
53
49
 
54
50
 
55
51
class TestNormalization(TestCase):
56
52
    """Verify that we have our normalizations correct."""
57
53
 
58
54
    def test_normalize(self):
59
 
        self.assertEqual(a_circle_d, normalize('NFD', a_circle_c))
60
 
        self.assertEqual(a_circle_c, normalize('NFC', a_circle_d))
61
 
        self.assertEqual(a_dots_d, normalize('NFD', a_dots_c))
62
 
        self.assertEqual(a_dots_c, normalize('NFC', a_dots_d))
63
 
        self.assertEqual(z_umlat_d, normalize('NFD', z_umlat_c))
64
 
        self.assertEqual(z_umlat_c, normalize('NFC', z_umlat_d))
65
 
        self.assertEqual(squared_d, normalize('NFC', squared_c))
66
 
        self.assertEqual(squared_c, normalize('NFD', squared_d))
67
 
        self.assertEqual(quarter_d, normalize('NFC', quarter_c))
68
 
        self.assertEqual(quarter_c, normalize('NFD', quarter_d))
 
55
        self.assertEqual(a_circle_d, normalize('NFKD', a_circle_c))
 
56
        self.assertEqual(a_circle_c, normalize('NFKC', a_circle_d))
 
57
        self.assertEqual(a_dots_d, normalize('NFKD', a_dots_c))
 
58
        self.assertEqual(a_dots_c, normalize('NFKC', a_dots_d))
 
59
        self.assertEqual(z_umlat_d, normalize('NFKD', z_umlat_c))
 
60
        self.assertEqual(z_umlat_c, normalize('NFKC', z_umlat_d))
69
61
 
70
62
 
71
63
class NormalizedFilename(TestCaseWithTransport):
82
74
        self.assertEqual((a_dots_c, True), anf(a_dots_d))
83
75
        self.assertEqual((z_umlat_c, True), anf(z_umlat_c))
84
76
        self.assertEqual((z_umlat_c, True), anf(z_umlat_d))
85
 
        self.assertEqual((squared_c, True), anf(squared_c))
86
 
        self.assertEqual((squared_c, True), anf(squared_d))
87
 
        self.assertEqual((quarter_c, True), anf(quarter_c))
88
 
        self.assertEqual((quarter_c, True), anf(quarter_d))
89
77
 
90
78
    def test__inaccessible_normalized_filename(self):
91
79
        inf = osutils._inaccessible_normalized_filename
98
86
        self.assertEqual((a_dots_c, False), inf(a_dots_d))
99
87
        self.assertEqual((z_umlat_c, True), inf(z_umlat_c))
100
88
        self.assertEqual((z_umlat_c, False), inf(z_umlat_d))
101
 
        self.assertEqual((squared_c, True), inf(squared_c))
102
 
        self.assertEqual((squared_c, True), inf(squared_d))
103
 
        self.assertEqual((quarter_c, True), inf(quarter_c))
104
 
        self.assertEqual((quarter_c, True), inf(quarter_d))
105
89
 
106
90
    def test_functions(self):
107
91
        if osutils.normalizes_filenames():
131
115
        self.assertEqual(expected, present)
132
116
 
133
117
    def test_access_normalized(self):
134
 
        # We should always be able to access files created with
 
118
        # We should always be able to access files created with 
135
119
        # normalized filenames
136
120
        # With FAT32 and certain encodings on win32
137
121
        # a_circle_c and a_dots_c actually map to the same file
138
122
        # adding a suffix kicks in the 'preserving but insensitive'
139
123
        # route, and maintains the right files
140
 
        files = [a_circle_c+'.1', a_dots_c+'.2', z_umlat_c+'.3',
141
 
                 squared_c+'.4', quarter_c+'.5']
 
124
        files = [a_circle_c+'.1', a_dots_c+'.2', z_umlat_c+'.3']
142
125
        try:
143
126
            self.build_tree(files, line_endings='native')
144
127
        except UnicodeError:
160
143
                actual = f.read()
161
144
            finally:
162
145
                f.close()
163
 
            self.assertEqual(shouldbe, actual,
 
146
            self.assertEqual(shouldbe, actual, 
164
147
                             'contents of %r is incorrect: %r != %r'
165
148
                             % (path, shouldbe, actual))
166
149