~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_transform.py

  • Committer: Danny van Heumen
  • Date: 2010-03-09 21:42:11 UTC
  • mto: (4634.139.5 2.0)
  • mto: This revision was merged to the branch mainline in revision 5160.
  • Revision ID: danny@dannyvanheumen.nl-20100309214211-iqh42x6qcikgd9p3
Reverted now-useless TODO list.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2006-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
136
136
        transform.finalize()
137
137
        transform.finalize()
138
138
 
 
139
    def test_change_root_id(self):
 
140
        transform, root = self.get_transform()
 
141
        self.assertNotEqual('new-root-id', self.wt.get_root_id())
 
142
        transform.new_directory('', ROOT_PARENT, 'new-root-id')
 
143
        transform.delete_contents(root)
 
144
        transform.unversion_file(root)
 
145
        transform.fixup_new_roots()
 
146
        transform.apply()
 
147
        self.assertEqual('new-root-id', self.wt.get_root_id())
 
148
 
 
149
    def test_change_root_id_add_files(self):
 
150
        transform, root = self.get_transform()
 
151
        self.assertNotEqual('new-root-id', self.wt.get_root_id())
 
152
        new_trans_id = transform.new_directory('', ROOT_PARENT, 'new-root-id')
 
153
        transform.new_file('file', new_trans_id, ['new-contents\n'],
 
154
                           'new-file-id')
 
155
        transform.delete_contents(root)
 
156
        transform.unversion_file(root)
 
157
        transform.fixup_new_roots()
 
158
        transform.apply()
 
159
        self.assertEqual('new-root-id', self.wt.get_root_id())
 
160
        self.assertEqual('new-file-id', self.wt.path2id('file'))
 
161
        self.assertFileEqual('new-contents\n', self.wt.abspath('file'))
 
162
 
 
163
    def test_add_two_roots(self):
 
164
        transform, root = self.get_transform()
 
165
        new_trans_id = transform.new_directory('', ROOT_PARENT, 'new-root-id')
 
166
        new_trans_id = transform.new_directory('', ROOT_PARENT, 'alt-root-id')
 
167
        self.assertRaises(ValueError, transform.fixup_new_roots)
 
168
 
139
169
    def test_hardlink(self):
140
170
        self.requireFeature(HardlinkFeature)
141
171
        transform, root = self.get_transform()
746
776
        create.apply()
747
777
        transform, root = self.get_transform()
748
778
        transform.adjust_root_path('oldroot', fun)
749
 
        new_root=transform.trans_id_tree_path('')
 
779
        new_root = transform.trans_id_tree_path('')
750
780
        transform.version_file('new-root', new_root)
751
781
        transform.apply()
752
782
 
2146
2176
    def create_tree(self):
2147
2177
        tree = self.make_branch_and_tree('.')
2148
2178
        self.build_tree_contents([('a', 'content 1')])
 
2179
        tree.set_root_id('TREE_ROOT')
2149
2180
        tree.add('a', 'a-id')
2150
2181
        tree.commit('rev1', rev_id='rev1')
2151
2182
        return tree.branch.repository.revision_tree('rev1')
2427
2458
 
2428
2459
    def test_file_content_summary_executable(self):
2429
2460
        if not osutils.supports_executable():
2430
 
            raise TestNotApplicable()
 
2461
            raise tests.TestNotApplicable()
2431
2462
        preview = self.get_empty_preview()
2432
2463
        path_id = preview.new_file('path', preview.root, 'contents', 'path-id')
2433
2464
        preview.set_executability(True, path_id)
2442
2473
        self.assertIs(None, summary[3])
2443
2474
 
2444
2475
    def test_change_executability(self):
2445
 
        if not osutils.supports_executable():
2446
 
            raise TestNotApplicable()
2447
2476
        tree = self.make_branch_and_tree('tree')
2448
2477
        self.build_tree(['tree/path'])
2449
2478
        tree.add('path')
2613
2642
 
2614
2643
    def test_walkdirs(self):
2615
2644
        preview = self.get_empty_preview()
2616
 
        preview.version_file('tree-root', preview.root)
 
2645
        root = preview.new_directory('', ROOT_PARENT, 'tree-root')
 
2646
        # FIXME: new_directory should mark root.
 
2647
        preview.fixup_new_roots()
2617
2648
        preview_tree = preview.get_preview_tree()
2618
2649
        file_trans_id = preview.new_file('a', preview.root, 'contents',
2619
2650
                                         'a-id')
2650
2681
        self.addCleanup(work_tree.unlock)
2651
2682
        preview = TransformPreview(work_tree)
2652
2683
        self.addCleanup(preview.finalize)
2653
 
        preview_tree = preview.get_preview_tree()
2654
2684
        file_trans_id = preview.trans_id_file_id('file-id')
2655
2685
        preview.delete_contents(file_trans_id)
2656
2686
        preview.create_file('a\nb\n', file_trans_id)
2657
2687
        pb = progress.DummyProgress()
 
2688
        preview_tree = preview.get_preview_tree()
2658
2689
        merger = Merger.from_revision_ids(pb, preview_tree,
2659
2690
                                          child_tree.branch.last_revision(),
2660
2691
                                          other_branch=child_tree.branch,
2667
2698
 
2668
2699
    def test_merge_preview_into_workingtree(self):
2669
2700
        tree = self.make_branch_and_tree('tree')
 
2701
        tree.set_root_id('TREE_ROOT')
2670
2702
        tt = TransformPreview(tree)
2671
2703
        self.addCleanup(tt.finalize)
2672
2704
        tt.new_file('name', tt.root, 'content', 'file-id')
2673
2705
        tree2 = self.make_branch_and_tree('tree2')
 
2706
        tree2.set_root_id('TREE_ROOT')
2674
2707
        pb = progress.DummyProgress()
2675
2708
        merger = Merger.from_uncommitted(tree2, tt.get_preview_tree(),
2676
2709
                                         pb, tree.basis_tree())
2722
2755
        rev2_tree = tree.branch.repository.revision_tree(rev2_id)
2723
2756
        self.assertEqual('contents', rev2_tree.get_file_text('file_id'))
2724
2757
 
 
2758
    def test_ascii_limbo_paths(self):
 
2759
        self.requireFeature(tests.UnicodeFilenameFeature)
 
2760
        branch = self.make_branch('any')
 
2761
        tree = branch.repository.revision_tree(_mod_revision.NULL_REVISION)
 
2762
        tt = TransformPreview(tree)
 
2763
        foo_id = tt.new_directory('', ROOT_PARENT)
 
2764
        bar_id = tt.new_file(u'\u1234bar', foo_id, 'contents')
 
2765
        limbo_path = tt._limbo_name(bar_id)
 
2766
        self.assertEqual(limbo_path.encode('ascii', 'replace'), limbo_path)
 
2767
 
2725
2768
 
2726
2769
class FakeSerializer(object):
2727
2770
    """Serializer implementation that simply returns the input.