/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: John Arbash Meinel
  • Date: 2006-07-18 18:57:54 UTC
  • mto: This revision was merged to the branch mainline in revision 1868.
  • Revision ID: john@arbash-meinel.com-20060718185754-4007745748e28db9
Commit timestamp restricted to 1ms precision.

The old code would restrict to 1s resolution if the timestamp was
supplied, while it preserved full resolution if the timestamp was
auto generated. Now both paths preserve only 1ms resolution.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 Canonical Ltd
 
1
# Copyright (C) 2005 by Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
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
 
            self.build_tree(files, line_endings='native')
 
126
            self.build_tree(files)
144
127
        except UnicodeError:
145
128
            raise TestSkipped("filesystem cannot create unicode files")
146
129
 
160
143
                actual = f.read()
161
144
            finally:
162
145
                f.close()
163
 
            self.assertEqual(shouldbe, actual,
164
 
                             'contents of %r is incorrect: %r != %r'
 
146
            self.assertEqual(shouldbe, actual, 
 
147
                             'contents of %s is incorrect: %r != %r'
165
148
                             % (path, shouldbe, actual))
166
149
 
167
150
    def test_access_non_normalized(self):