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

  • Committer: Jelmer Vernooij
  • Date: 2010-03-21 21:39:33 UTC
  • mfrom: (5102 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5143.
  • Revision ID: jelmer@samba.org-20100321213933-fexeh9zcoz8oaju2
merge bzr.dev.

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
17
17
import os
18
18
from StringIO import StringIO
19
19
import sys
 
20
import time
20
21
 
21
22
from bzrlib import (
22
23
    bencode,
136
137
        transform.finalize()
137
138
        transform.finalize()
138
139
 
 
140
    def test_create_files_same_timestamp(self):
 
141
        transform, root = self.get_transform()
 
142
        self.wt.lock_tree_write()
 
143
        self.addCleanup(self.wt.unlock)
 
144
        # Roll back the clock, so that we know everything is being set to the
 
145
        # exact time
 
146
        transform._creation_mtime = creation_mtime = time.time() - 20.0
 
147
        transform.create_file('content-one',
 
148
                              transform.create_path('one', root))
 
149
        time.sleep(1) # *ugly*
 
150
        transform.create_file('content-two',
 
151
                              transform.create_path('two', root))
 
152
        transform.apply()
 
153
        fo, st1 = self.wt.get_file_with_stat(None, path='one', filtered=False)
 
154
        fo.close()
 
155
        fo, st2 = self.wt.get_file_with_stat(None, path='two', filtered=False)
 
156
        fo.close()
 
157
        # We only guarantee 2s resolution
 
158
        self.assertTrue(abs(creation_mtime - st1.st_mtime) < 2.0,
 
159
            "%s != %s within 2 seconds" % (creation_mtime, st1.st_mtime))
 
160
        # But if we have more than that, all files should get the same result
 
161
        self.assertEqual(st1.st_mtime, st2.st_mtime)
 
162
 
 
163
    def test_change_root_id(self):
 
164
        transform, root = self.get_transform()
 
165
        self.assertNotEqual('new-root-id', self.wt.get_root_id())
 
166
        transform.new_directory('', ROOT_PARENT, 'new-root-id')
 
167
        transform.delete_contents(root)
 
168
        transform.unversion_file(root)
 
169
        transform.fixup_new_roots()
 
170
        transform.apply()
 
171
        self.assertEqual('new-root-id', self.wt.get_root_id())
 
172
 
 
173
    def test_change_root_id_add_files(self):
 
174
        transform, root = self.get_transform()
 
175
        self.assertNotEqual('new-root-id', self.wt.get_root_id())
 
176
        new_trans_id = transform.new_directory('', ROOT_PARENT, 'new-root-id')
 
177
        transform.new_file('file', new_trans_id, ['new-contents\n'],
 
178
                           'new-file-id')
 
179
        transform.delete_contents(root)
 
180
        transform.unversion_file(root)
 
181
        transform.fixup_new_roots()
 
182
        transform.apply()
 
183
        self.assertEqual('new-root-id', self.wt.get_root_id())
 
184
        self.assertEqual('new-file-id', self.wt.path2id('file'))
 
185
        self.assertFileEqual('new-contents\n', self.wt.abspath('file'))
 
186
 
 
187
    def test_add_two_roots(self):
 
188
        transform, root = self.get_transform()
 
189
        new_trans_id = transform.new_directory('', ROOT_PARENT, 'new-root-id')
 
190
        new_trans_id = transform.new_directory('', ROOT_PARENT, 'alt-root-id')
 
191
        self.assertRaises(ValueError, transform.fixup_new_roots)
 
192
 
139
193
    def test_hardlink(self):
140
194
        self.requireFeature(HardlinkFeature)
141
195
        transform, root = self.get_transform()
758
812
        create.apply()
759
813
        transform, root = self.get_transform()
760
814
        transform.adjust_root_path('oldroot', fun)
761
 
        new_root=transform.trans_id_tree_path('')
 
815
        new_root = transform.trans_id_tree_path('')
762
816
        transform.version_file('new-root', new_root)
763
817
        transform.apply()
764
818
 
1869
1923
        self.assertTrue(source.is_executable('file1-id'))
1870
1924
 
1871
1925
    def install_rot13_content_filter(self, pattern):
 
1926
        # We could use
 
1927
        # self.addCleanup(filters._reset_registry, filters._reset_registry())
 
1928
        # below, but that looks a bit... hard to read even if it's exactly
 
1929
        # the same thing.
1872
1930
        original_registry = filters._reset_registry()
1873
1931
        def restore_registry():
1874
1932
            filters._reset_registry(original_registry)
2313
2371
    def test_ignore_pb(self):
2314
2372
        # pb could be supported, but TT.iter_changes doesn't support it.
2315
2373
        revision_tree, preview_tree = self.get_tree_and_preview_tree()
2316
 
        preview_tree.iter_changes(revision_tree, pb=progress.DummyProgress())
 
2374
        preview_tree.iter_changes(revision_tree)
2317
2375
 
2318
2376
    def test_kind(self):
2319
2377
        revision_tree = self.create_tree()
2681
2739
        preview = self.get_empty_preview()
2682
2740
        root = preview.new_directory('', ROOT_PARENT, 'tree-root')
2683
2741
        # FIXME: new_directory should mark root.
2684
 
        preview.adjust_path('', ROOT_PARENT, root)
 
2742
        preview.fixup_new_roots()
2685
2743
        preview_tree = preview.get_preview_tree()
2686
2744
        file_trans_id = preview.new_file('a', preview.root, 'contents',
2687
2745
                                         'a-id')
2721
2779
        file_trans_id = preview.trans_id_file_id('file-id')
2722
2780
        preview.delete_contents(file_trans_id)
2723
2781
        preview.create_file('a\nb\n', file_trans_id)
2724
 
        pb = progress.DummyProgress()
2725
2782
        preview_tree = preview.get_preview_tree()
2726
 
        merger = Merger.from_revision_ids(pb, preview_tree,
 
2783
        merger = Merger.from_revision_ids(None, preview_tree,
2727
2784
                                          child_tree.branch.last_revision(),
2728
2785
                                          other_branch=child_tree.branch,
2729
2786
                                          tree_branch=work_tree.branch)
2741
2798
        tt.new_file('name', tt.root, 'content', 'file-id')
2742
2799
        tree2 = self.make_branch_and_tree('tree2')
2743
2800
        tree2.set_root_id('TREE_ROOT')
2744
 
        pb = progress.DummyProgress()
2745
2801
        merger = Merger.from_uncommitted(tree2, tt.get_preview_tree(),
2746
 
                                         pb, tree.basis_tree())
 
2802
                                         None, tree.basis_tree())
2747
2803
        merger.merge_type = Merge3Merger
2748
2804
        merger.do_merge()
2749
2805
 
2759
2815
        tt.create_file('baz', trans_id)
2760
2816
        tree2 = tree.bzrdir.sprout('tree2').open_workingtree()
2761
2817
        self.build_tree_contents([('tree2/foo', 'qux')])
2762
 
        pb = progress.DummyProgress()
 
2818
        pb = None
2763
2819
        merger = Merger.from_uncommitted(tree2, tt.get_preview_tree(),
2764
2820
                                         pb, tree.basis_tree())
2765
2821
        merger.merge_type = Merge3Merger