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

  • Committer: Jelmer Vernooij
  • Date: 2019-12-23 01:39:21 UTC
  • mfrom: (7424 work)
  • mto: This revision was merged to the branch mainline in revision 7425.
  • Revision ID: jelmer@jelmer.uk-20191223013921-2kzd0wlcoylgxksk
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
214
214
        rev1 = subtree.commit('commit in subdir')
215
215
        rev1_tree = subtree.basis_tree()
216
216
        rev1_tree.lock_read()
 
217
        # Trigger reading of inventory
217
218
        rev1_tree.root_inventory
218
219
        self.addCleanup(rev1_tree.unlock)
219
220
        rev2 = subtree.commit('second commit in subdir', allow_pointless=True)
220
221
        rev2_tree = subtree.basis_tree()
221
222
        rev2_tree.lock_read()
 
223
        # Trigger reading of inventory
222
224
        rev2_tree.root_inventory
223
225
        self.addCleanup(rev2_tree.unlock)
224
226
 
242
244
        result_rev2_tree = tree.revision_tree(rev2)
243
245
        # compare - there should be no differences between the handed and
244
246
        # returned trees
245
 
        self.assertTreesEqual(rev1_tree, result_rev1_tree)
246
247
        self.assertTreesEqual(rev2_tree, result_rev2_tree)
 
248
        self.assertRaises(
 
249
            errors.NoSuchRevisionInTree, self.assertTreesEqual, rev1_tree,
 
250
            result_rev1_tree)
247
251
 
248
252
    def test_dirstate_doesnt_cache_non_parent_trees(self):
249
253
        """Getting parent trees from a dirstate tree does not read from the
534
538
                                          format=format_name)
535
539
        tree2 = self.make_branch_and_tree('tree2',
536
540
                                          format=format_name)
537
 
        self.assertNotEqual(tree1.get_root_id(), tree2.get_root_id())
 
541
        self.assertNotEqual(tree1.path2id(''), tree2.path2id(''))
538
542
        # when you branch, it inherits the same root id
539
543
        tree1.commit('first post')
540
544
        tree3 = tree1.controldir.sprout('tree3').open_workingtree()
541
 
        self.assertEqual(tree3.get_root_id(), tree1.get_root_id())
 
545
        self.assertEqual(tree3.path2id(''), tree1.path2id(''))
542
546
 
543
547
    def test_set_root_id(self):
544
548
        # similar to some code that fails in the dirstate-plus-subtree branch
545
549
        # -- setting the root id while adding a parent seems to scramble the
546
550
        # dirstate invariants. -- mbp 20070303
547
551
        def validate():
548
 
            wt.lock_read()
549
 
            try:
 
552
            with wt.lock_read():
550
553
                wt.current_dirstate()._validate()
551
 
            finally:
552
 
                wt.unlock()
553
554
        wt = self.make_workingtree('tree')
554
555
        wt.set_root_id(b'TREE-ROOTID')
555
556
        validate()
563
564
 
564
565
    def test_default_root_id(self):
565
566
        tree = self.make_branch_and_tree('tag', format='dirstate-tags')
566
 
        self.assertEqual(inventory.ROOT_ID, tree.get_root_id())
 
567
        self.assertEqual(inventory.ROOT_ID, tree.path2id(''))
567
568
        tree = self.make_branch_and_tree('subtree',
568
569
                                         format='development-subtree')
569
 
        self.assertNotEqual(inventory.ROOT_ID, tree.get_root_id())
 
570
        self.assertNotEqual(inventory.ROOT_ID, tree.path2id(''))
570
571
 
571
572
    def test_non_subtree_with_nested_trees(self):
572
573
        # prior to dirstate, st/diff/commit ignored nested trees.
591
592
                     (None, b'root'),
592
593
                     (None, u'dir'),
593
594
                     (None, 'directory'),
594
 
                     (None, False)),
 
595
                     (None, False), False),
595
596
                    (b'root', (None, u''), True, (False, True), (None, None),
596
 
                     (None, u''), (None, 'directory'), (None, 0))]
 
597
                     (None, u''), (None, 'directory'), (None, False), False)]
597
598
        self.assertEqual(
598
599
            expected,
599
600
            list(tree.iter_changes(tree.basis_tree(), specific_files=['dir'])))
612
613
                     (b'root', b'root'),
613
614
                     ('dir', 'dir'),
614
615
                     ('directory', None),
615
 
                     (False, False))]
 
616
                     (False, False), False)]
616
617
        self.assertEqual(expected, list(tree.iter_changes(tree.basis_tree())))
617
618
        tree.unlock()
618
619
 
659
660
        self.addCleanup(tree.unlock)
660
661
        basis.lock_read()
661
662
        self.addCleanup(basis.unlock)
662
 
        changes = [c[1] for c in
 
663
        changes = [c.path for c in
663
664
                   tree.iter_changes(basis, want_unversioned=True)]
664
665
        self.assertEqual([(None, 'unversioned'),
665
666
                          (None, 'versioned/unversioned'),