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

  • Committer: John Arbash Meinel
  • Date: 2007-06-28 23:18:09 UTC
  • mfrom: (2562 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2566.
  • Revision ID: john@arbash-meinel.com-20070628231809-pqbt7puoqj8bl07b
[merge] bzr.dev 2562

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
    dirstate,
25
25
    errors,
26
26
    inventory,
 
27
    osutils,
27
28
    workingtree_4,
28
29
    )
29
30
from bzrlib.lockdir import LockDir
523
524
        # having checked this is on, the tree interface, and intertree
524
525
        # interface tests, will proceed to test the subtree support of
525
526
        # workingtree_4.
 
527
 
 
528
    def test_iter_changes_ignores_unversioned_dirs(self):
 
529
        """_iter_changes should not descend into unversioned directories."""
 
530
        tree = self.make_branch_and_tree('.', format='dirstate')
 
531
        # We have an unversioned directory at the root, a versioned one with
 
532
        # other versioned files and an unversioned directory, and another
 
533
        # versioned dir with nothing but an unversioned directory.
 
534
        self.build_tree(['unversioned/',
 
535
                         'unversioned/a',
 
536
                         'unversioned/b/',
 
537
                         'versioned/',
 
538
                         'versioned/unversioned/',
 
539
                         'versioned/unversioned/a',
 
540
                         'versioned/unversioned/b/',
 
541
                         'versioned2/',
 
542
                         'versioned2/a',
 
543
                         'versioned2/unversioned/',
 
544
                         'versioned2/unversioned/a',
 
545
                         'versioned2/unversioned/b/',
 
546
                        ])
 
547
        tree.add(['versioned', 'versioned2', 'versioned2/a'])
 
548
        tree.commit('one', rev_id='rev-1')
 
549
        # Trap osutils._walkdirs_utf8 to spy on what dirs have been accessed.
 
550
        returned = []
 
551
        orig_walkdirs = osutils._walkdirs_utf8
 
552
        def reset():
 
553
            osutils._walkdirs_utf8 = orig_walkdirs
 
554
        self.addCleanup(reset)
 
555
        def walkdirs_spy(*args, **kwargs):
 
556
            for val in orig_walkdirs(*args, **kwargs):
 
557
                returned.append(val[0][0])
 
558
                yield val
 
559
        osutils._walkdirs_utf8 = walkdirs_spy
 
560
 
 
561
        basis = tree.basis_tree()
 
562
        tree.lock_read()
 
563
        self.addCleanup(tree.unlock)
 
564
        basis.lock_read()
 
565
        self.addCleanup(basis.unlock)
 
566
        changes = [c[1] for c in
 
567
                   tree._iter_changes(basis, want_unversioned=True)]
 
568
        self.assertEqual([(None, 'unversioned'),
 
569
                          (None, 'versioned/unversioned'),
 
570
                          (None, 'versioned2/unversioned'),
 
571
                         ], changes)
 
572
        self.assertEqual(['', 'versioned', 'versioned2'], returned)
 
573
        del returned[:] # reset
 
574
        changes = [c[1] for c in tree._iter_changes(basis)]
 
575
        self.assertEqual([], changes)
 
576
        self.assertEqual(['', 'versioned', 'versioned2'], returned)