/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 tests/test_fetch.py

  • Committer: Jelmer Vernooij
  • Date: 2009-03-26 22:51:15 UTC
  • mto: (0.200.299 trunk)
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@samba.org-20090326225115-2o3nmibxhy5ff1mg
Use inventory deltas internally so fetch is O(changes) rather than O(tree).

Show diffs side-by-side

added added

removed removed

Lines of Context:
188
188
 
189
189
    def test_import_blob_simple(self):
190
190
        blob = Blob.from_string("bar")
191
 
        inv = Inventory()
192
 
        inv.revision_id = "somerevid"
193
 
        import_git_blob(self._texts, self._mapping, "bla", blob, 
194
 
            inv, [], self._map, False)
 
191
        base_inv = Inventory()
 
192
        ret = import_git_blob(self._texts, self._mapping, "bla", blob, 
 
193
            base_inv, None, "somerevid", [], self._map, False)
195
194
        self.assertEquals(set([('bla', 'somerevid')]), self._texts.keys())
196
195
        self.assertEquals(self._texts.get_record_stream([('bla', 'somerevid')],
197
196
            "unordered", True).next().get_bytes_as("fulltext"), "bar")
198
 
        self.assertEquals(False, inv["bla"].executable)
199
 
        self.assertEquals("file", inv["bla"].kind)
200
 
        self.assertEquals("somerevid", inv["bla"].revision)
201
 
        self.assertEquals(osutils.sha_strings(["bar"]), inv["bla"].text_sha1)
 
197
        self.assertEquals(1, len(ret)) 
 
198
        self.assertEquals(None, ret[0][0])
 
199
        self.assertEquals("bla", ret[0][1])
 
200
        ie = ret[0][3]
 
201
        self.assertEquals(False, ie.executable)
 
202
        self.assertEquals("file", ie.kind)
 
203
        self.assertEquals("somerevid", ie.revision)
 
204
        self.assertEquals(osutils.sha_strings(["bar"]), ie.text_sha1)
202
205
 
203
206
    def test_import_tree_empty_root(self):
204
 
        inv = Inventory()
205
 
        inv.revision_id = "somerevid"
 
207
        base_inv = Inventory(root_id=None)
206
208
        tree = Tree()
207
209
        tree.serialize()
208
 
        import_git_tree(self._texts, self._mapping, "", tree, inv, [], 
209
 
            self._map, {}.__getitem__)
 
210
        ret = import_git_tree(self._texts, self._mapping, "", tree, base_inv, 
 
211
            None, "somerevid", [], self._map, {}.__getitem__)
210
212
        self.assertEquals(set([("TREE_ROOT", 'somerevid')]), self._texts.keys())
211
 
        self.assertEquals(False, inv["TREE_ROOT"].executable)
212
 
        self.assertEquals("directory", inv["TREE_ROOT"].kind)
213
 
        self.assertEquals({}, inv["TREE_ROOT"].children)
214
 
        self.assertEquals("somerevid", inv["TREE_ROOT"].revision)
215
 
        self.assertEquals(None, inv["TREE_ROOT"].text_sha1)
 
213
        self.assertEquals(1, len(ret))
 
214
        self.assertEquals(None, ret[0][0])
 
215
        self.assertEquals("", ret[0][1])
 
216
        ie = ret[0][3]
 
217
        self.assertEquals(False, ie.executable)
 
218
        self.assertEquals("directory", ie.kind)
 
219
        self.assertEquals({}, ie.children)
 
220
        self.assertEquals("somerevid", ie.revision)
 
221
        self.assertEquals(None, ie.text_sha1)
216
222
 
217
223
    def test_import_tree_empty(self):
218
 
        inv = Inventory()
219
 
        inv.revision_id = "somerevid"
 
224
        base_inv = Inventory()
220
225
        tree = Tree()
221
226
        tree.serialize()
222
 
        import_git_tree(self._texts, self._mapping, "bla", tree, inv, [], 
223
 
            self._map, {}.__getitem__)
 
227
        ret = import_git_tree(self._texts, self._mapping, "bla", tree, 
 
228
            base_inv, None, "somerevid", [], self._map, {}.__getitem__)
224
229
        self.assertEquals(set([("bla", 'somerevid')]), self._texts.keys())
225
 
        self.assertEquals("directory", inv["bla"].kind)
226
 
        self.assertEquals(False, inv["bla"].executable)
227
 
        self.assertEquals({}, inv["bla"].children)
228
 
        self.assertEquals("somerevid", inv["bla"].revision)
229
 
        self.assertEquals(None, inv["bla"].text_sha1)
 
230
        self.assertEquals(1, len(ret))
 
231
        self.assertEquals(None, ret[0][0])
 
232
        self.assertEquals("bla", ret[0][1])
 
233
        ie = ret[0][3]
 
234
        self.assertEquals("directory", ie.kind)
 
235
        self.assertEquals(False, ie.executable)
 
236
        self.assertEquals({}, ie.children)
 
237
        self.assertEquals("somerevid", ie.revision)
 
238
        self.assertEquals(None, ie.text_sha1)
230
239
 
231
240
    def test_import_tree_with_file(self):
232
 
        inv = Inventory()
233
 
        inv.revision_id = "somerevid"
 
241
        base_inv = Inventory()
234
242
        blob = Blob.from_string("bar1")
235
243
        tree = Tree()
236
244
        tree.add(0100600, "foo", blob.id)
237
245
        tree.serialize()
238
246
        objects = { blob.id: blob, tree.id: tree }
239
 
        import_git_tree(self._texts, self._mapping, "bla", tree, inv, [], 
240
 
            self._map, objects.__getitem__)
241
 
        self.assertEquals(["foo"], inv["bla"].children.keys())
242
 
        self.assertEquals(set(["bla", "bla/foo"]), 
243
 
                set([ie.file_id for (path, ie) in inv.entries()]))
244
 
        ie = inv["bla/foo"]
 
247
        ret = import_git_tree(self._texts, self._mapping, "bla", tree, 
 
248
            base_inv, None, "somerevid", [], self._map, objects.__getitem__)
 
249
        self.assertEquals(2, len(ret))
 
250
        self.assertEquals(None, ret[0][0])
 
251
        self.assertEquals("bla", ret[0][1])
 
252
        self.assertEquals(None, ret[1][0])
 
253
        self.assertEquals("bla/foo", ret[1][1])
 
254
        ie = ret[0][3]
 
255
        self.assertEquals("directory", ie.kind)
 
256
        ie = ret[1][3]
245
257
        self.assertEquals("file", ie.kind)
246
258
        self.assertEquals("bla/foo", ie.file_id)
247
259
        self.assertEquals("somerevid", ie.revision)
249
261
        self.assertEquals(False, ie.executable)
250
262
 
251
263
    def test_import_tree_with_file_exe(self):
252
 
        inv = Inventory()
253
 
        inv.revision_id = "somerevid"
 
264
        base_inv = Inventory(root_id=None)
254
265
        blob = Blob.from_string("bar")
255
266
        tree = Tree()
256
267
        tree.add(0100755, "foo", blob.id)
257
268
        tree.serialize()
258
269
        objects = { blob.id: blob, tree.id: tree }
259
 
        import_git_tree(self._texts, self._mapping, "bla", tree, inv, [], 
260
 
            self._map, objects.__getitem__)
261
 
        self.assertEquals(["foo"], inv["bla"].children.keys())
262
 
        ie = inv["bla/foo"]
 
270
        ret = import_git_tree(self._texts, self._mapping, "", tree, 
 
271
            base_inv, None, "somerevid", [], self._map, objects.__getitem__)
 
272
        self.assertEquals(2, len(ret))
 
273
        self.assertEquals(None, ret[0][0])
 
274
        self.assertEquals("", ret[0][1])
 
275
        self.assertEquals(None, ret[1][0])
 
276
        self.assertEquals("foo", ret[1][1])
 
277
        ie = ret[0][3]
 
278
        self.assertEquals("directory", ie.kind)
 
279
        ie = ret[1][3]
263
280
        self.assertEquals("file", ie.kind)
264
281
        self.assertEquals(True, ie.executable)