/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: 2007-03-20 00:49:11 UTC
  • mto: This revision was merged to the branch mainline in revision 2366.
  • Revision ID: john@arbash-meinel.com-20070320004911-0qajqnddr3rf9r2e
Simplify the test even further....
Basically, if you have a file deleted as removed, and then you unversion its directory
it deletes all records in the dirblock, not realizing that some of them might
already be marked as removed.

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