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

(broken) merge aaron's workingtree format changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
174
174
        t = control.get_workingtree_transport(None)
175
175
        self.assertEqualDiff('Bazaar-NG Working Tree format 3',
176
176
                             t.get('format').read())
177
 
        # self.assertContainsRe(t.get('inventory').read(), 
178
 
        #                       '<inventory file_id="[^"]*" format="5">\n'
179
 
        #                       '</inventory>\n',
180
 
        #                      )
181
 
        # WorkingTreeFormat3 doesn't default to creating a unique root id,
182
 
        # because it is incompatible with older bzr versions
183
 
        self.assertContainsRe(t.get('inventory').read(),
 
177
        self.assertEqualDiff(t.get('inventory').read(), 
184
178
                              '<inventory format="5">\n'
185
179
                              '</inventory>\n',
186
180
                             )
226
220
        self.assertEqual([], tree.get_parent_ids())
227
221
 
228
222
 
 
223
class TestWorkingTreeFormatAB1(TestCaseWithTransport):
 
224
    """Tests specific to WorkingTreeFormat3."""
 
225
 
 
226
    def test_disk_layout(self):
 
227
        tree = self.make_branch_and_tree('.', format='experimental-knit3')
 
228
        control = tree.bzrdir
 
229
        # we want:
 
230
        # format 'Bazaar-NG Working Tree format AB1'
 
231
        # inventory = 1 entry for root
 
232
        # pending-merges = ''
 
233
        # no inventory.basis yet
 
234
        t = control.get_workingtree_transport(None)
 
235
        self.assertEqualDiff('Bazaar-NG Working Tree format AB1',
 
236
                             t.get('format').read())
 
237
        self.assertContainsRe(t.get('inventory').read(), 
 
238
                              '<inventory format="7">\n'
 
239
                              '<directory file_id="[^"]*" name="" />\n'
 
240
                              '</inventory>\n',
 
241
                             )
 
242
        self.assertEqualDiff('### bzr hashcache v5\n',
 
243
                             t.get('stat-cache').read())
 
244
        self.assertFalse(t.has('basis-inventory-cache'))
 
245
        # no last-revision file means 'None' or 'NULLREVISION'
 
246
        self.assertFalse(t.has('last-revision'))
 
247
        tree.set_root_id('my-root-id')
 
248
        tree.commit('test', rev_id='revision-1')
 
249
        self.assertTrue(t.has('basis-inventory-cache'))
 
250
        self.assertTrue(t.has('last-revision'))
 
251
        self.assertEqualDiff(t.get('basis-inventory-cache').read(), 
 
252
            '<inventory format="7" revision_id="revision-1">\n'
 
253
            '<directory file_id="my-root-id" name="" revision="revision-1" />\n'
 
254
            '</inventory>\n')
 
255
    
 
256
    def test_incompatible_repo(self):
 
257
        control = bzrdir.format_registry.make_bzrdir('knit')
 
258
        control.workingtree_format = workingtree.WorkingTreeFormatAB1()
 
259
        tree = self.make_branch_and_tree('.', format=control)
 
260
        self.assertRaises(errors.RootNotRich, tree.commit)
 
261
 
 
262
    def test_compatible_repo(self):
 
263
        tree = self.make_branch_and_tree('.', format='experimental-knit3')
 
264
        tree.set_root_id('my-root-id')
 
265
        tree.commit('test', rev_id='revision-1')
 
266
        tree.commit('test', rev_id='revision-2')
 
267
        revision_tree = tree.branch.repository.revision_tree('revision-2')
 
268
        self.assertEqual('revision-1', 
 
269
                         revision_tree.inventory['my-root-id'].revision)
 
270
 
 
271
 
229
272
class TestFormat2WorkingTree(TestCaseWithTransport):
230
273
    """Tests that are specific to format 2 trees."""
231
274