/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/tree_implementations/test_test_trees.py

  • Committer: John Arbash Meinel
  • Date: 2007-02-17 22:03:08 UTC
  • mto: This revision was merged to the branch mainline in revision 2298.
  • Revision ID: john@arbash-meinel.com-20070217220308-1zol1ee5a0stse1u
Add tests for parent ids in test_test_trees

Show diffs side-by-side

added added

removed removed

Lines of Context:
133
133
        tree = self.get_tree_with_utf8(tree)
134
134
 
135
135
        revision_id = u'r\xe9v-1'.encode('utf8')
136
 
        path_and_ids = [(u'', u'TREE_ROOT'),
137
 
                        (u'b\xe5r', u'b\xe5-r-id'),
138
 
                        (u'f\xf6', u'f\xf6-id'),
139
 
                        (u'b\xe5r/b\xe1z', u'b\xe1z-id'),
 
136
        path_and_ids = [(u'', u'TREE_ROOT', None),
 
137
                        (u'b\xe5r', u'b\xe5r-id', u'TREE_ROOT'),
 
138
                        (u'f\xf6', u'f\xf6-id', u'TREE_ROOT'),
 
139
                        (u'b\xe5r/b\xe1z', u'b\xe1z-id', u'b\xe5r-id'),
140
140
                       ]
141
141
        tree.lock_read()
142
142
        try:
144
144
        finally:
145
145
            tree.unlock()
146
146
 
147
 
        for expected, actual in zip(path_and_ids, path_entries):
148
 
            self.assertEqual(expected[0], actual[0]) # Paths should match
149
 
            self.assertEqual(expected[1], actual[1].file_id)
150
 
            if isinstance(actual[1].file_id, str):
 
147
        for expected, (path, ie) in zip(path_and_ids, path_entries):
 
148
            self.assertEqual(expected[0], path) # Paths should match
 
149
            self.assertIsInstance(path, unicode)
 
150
            self.assertEqual(expected[1], ie.file_id)
 
151
            if isinstance(ie.file_id, str):
151
152
                # file_ids might be plain strings, but only if they are ascii
152
 
                actual[1].file_id.decode('ascii')
 
153
                ie.file_id.decode('ascii')
153
154
            else:
154
 
                self.assertIsInstance(actual[1].file_id, unicode)
 
155
                self.assertIsInstance(ie.file_id, unicode)
 
156
            self.assertEqual(expected[2], ie.parent_id)
 
157
            if expected[2] is not None:
 
158
                if isinstance(ie.parent_id, str):
 
159
                    ie.parent_id.decode('ascii')
 
160
                else:
 
161
                    self.assertIsInstance(ie.parent_id, unicode)
155
162
            # WorkingTree's return None for the last modified revision
156
 
            if actual[1].revision is not None:
157
 
                self.assertIsInstance(actual[1].revision, str)
158
 
                if expected[0] == '':
 
163
            if ie.revision is not None:
 
164
                self.assertIsInstance(ie.revision, str)
 
165
                if expected[0] != '':
159
166
                    # Some trees will preserve the revision id of the tree root,
160
167
                    # but not all will
161
 
                    continue
162
 
                self.assertEqual(revision_id, actual[1].revision)
 
168
                    self.assertEqual(revision_id, ie.revision)
163
169
        self.assertEqual(len(path_and_ids), len(path_entries))
164
170
        get_revision_id = getattr(tree, 'get_revision_id', None)
165
171
        if get_revision_id is not None:
174
180
 
175
181
        revision_id_1 = u'r\xe9v-1'.encode('utf8')
176
182
        revision_id_2 = u'r\xe9v-2'.encode('utf8')
177
 
        path_and_ids = [(u'', u'TREE_ROOT', None),
178
 
                        (u'b\xe5r', u'b\xe5-r-id', revision_id_1),
179
 
                        (u'f\xf6', u'f\xf6-id', revision_id_1),
180
 
                        (u'b\xe5r/b\xe1z', u'b\xe1z-id', revision_id_1),
181
 
                        (u'b\xe5r/z\xf7z', u'z\xf7z-id', revision_id_2),
 
183
        path_and_ids = [(u'', u'TREE_ROOT', None, None),
 
184
                        (u'b\xe5r', u'b\xe5r-id', u'TREE_ROOT', revision_id_1),
 
185
                        (u'f\xf6', u'f\xf6-id', u'TREE_ROOT', revision_id_1),
 
186
                        (u'b\xe5r/b\xe1z', u'b\xe1z-id', u'b\xe5r-id',
 
187
                            revision_id_1),
 
188
                        (u'b\xe5r/z\xf7z', u'z\xf7z-id', u'b\xe5r-id',
 
189
                            revision_id_2),
182
190
                       ]
183
191
        tree.lock_read()
184
192
        try:
186
194
        finally:
187
195
            tree.unlock()
188
196
 
189
 
        for expected, actual in zip(path_and_ids, path_entries):
190
 
            self.assertEqual(expected[0], actual[0]) # Paths should match
191
 
            self.assertEqual(expected[1], actual[1].file_id)
192
 
            if isinstance(actual[1].file_id, str):
 
197
        for expected, (path, ie) in zip(path_and_ids, path_entries):
 
198
            self.assertEqual(expected[0], path) # Paths should match
 
199
            self.assertIsInstance(path, unicode)
 
200
            self.assertEqual(expected[1], ie.file_id)
 
201
            if isinstance(ie.file_id, str):
193
202
                # file_ids might be plain strings, but only if they are ascii
194
 
                actual[1].file_id.decode('ascii')
 
203
                ie.file_id.decode('ascii')
195
204
            else:
196
 
                self.assertIsInstance(actual[1].file_id, unicode)
 
205
                self.assertIsInstance(ie.file_id, unicode)
 
206
            self.assertEqual(expected[2], ie.parent_id)
 
207
            if expected[2] is not None:
 
208
                if isinstance(ie.parent_id, str):
 
209
                    ie.parent_id.decode('ascii')
 
210
                else:
 
211
                    self.assertIsInstance(ie.parent_id, unicode)
197
212
            # WorkingTree's return None for the last modified revision
198
 
            if actual[1].revision is not None:
199
 
                self.assertIsInstance(actual[1].revision, str)
 
213
            if ie.revision is not None:
 
214
                self.assertIsInstance(ie.revision, str)
200
215
                if expected[0] == '':
201
216
                    # Some trees will preserve the revision id of the tree root,
202
217
                    # but not all will
203
218
                    continue
204
 
                self.assertEqual(expected[2], actual[1].revision)
 
219
                self.assertEqual(expected[3], ie.revision)
205
220
        self.assertEqual(len(path_and_ids), len(path_entries))
206
221
        get_revision_id = getattr(tree, 'get_revision_id', None)
207
222
        if get_revision_id is not None: