/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2004, 2005 Canonical Ltd
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
2
#
1185.50.22 by John Arbash Meinel
Forgot to add the test.
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
7
#
1185.50.22 by John Arbash Meinel
Forgot to add the test.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
12
#
1185.50.22 by John Arbash Meinel
Forgot to add the test.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
import os
1532 by Robert Collins
Merge in John Meinels integration branch.
18
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
19
from bzrlib.tests.workingtree_implementations import TestCaseWithWorkingTree
1185.50.22 by John Arbash Meinel
Forgot to add the test.
20
from bzrlib.branch import Branch
1910.2.31 by Aaron Bentley
Fix bugs in basis inventory handling, change filename
21
from bzrlib import inventory
1740.2.2 by Aaron Bentley
Add test for the basis inventory automatically adding the revision id.
22
from bzrlib.revision import Revision
1910.2.31 by Aaron Bentley
Fix bugs in basis inventory handling, change filename
23
import bzrlib.xml6
1185.50.22 by John Arbash Meinel
Forgot to add the test.
24
1532 by Robert Collins
Merge in John Meinels integration branch.
25
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
26
class TestBasisInventory(TestCaseWithWorkingTree):
1185.50.22 by John Arbash Meinel
Forgot to add the test.
27
28
    def test_create(self):
2255.2.20 by Robert Collins
Bypass irrelevant basis_inventory tests for dirstate.
29
        # This test is not applicable to DirState based trees: the basis is
30
        # not separate is mandatory.
31
        if isinstance(self.workingtree_format,
32
            bzrlib.workingtree_4.WorkingTreeFormat4):
33
            return
1638.1.2 by Robert Collins
Change the basis-inventory file to not have the revision-id in the file name.
34
        # TODO: jam 20051218 this probably should add more than just
35
        #                    a couple files to the inventory
36
1185.50.22 by John Arbash Meinel
Forgot to add the test.
37
        # Make sure the basis file is created by a commit
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
38
        t = self.make_branch_and_tree('.')
39
        b = t.branch
1185.50.22 by John Arbash Meinel
Forgot to add the test.
40
        open('a', 'wb').write('a\n')
41
        t.add('a')
42
        t.commit('a', rev_id='r1')
43
1910.2.31 by Aaron Bentley
Fix bugs in basis inventory handling, change filename
44
        t._control_files.get_utf8('basis-inventory-cache')
1185.50.22 by John Arbash Meinel
Forgot to add the test.
45
1638.1.2 by Robert Collins
Change the basis-inventory file to not have the revision-id in the file name.
46
        basis_inv = t.basis_tree().inventory
47
        self.assertEquals('r1', basis_inv.revision_id)
1185.50.22 by John Arbash Meinel
Forgot to add the test.
48
        
1185.65.17 by Robert Collins
Merge from integration, mode-changes are broken.
49
        store_inv = b.repository.get_inventory('r1')
1185.50.22 by John Arbash Meinel
Forgot to add the test.
50
        self.assertEquals(store_inv._byid, basis_inv._byid)
51
52
        open('b', 'wb').write('b\n')
53
        t.add('b')
54
        t.commit('b', rev_id='r2')
55
1910.2.31 by Aaron Bentley
Fix bugs in basis inventory handling, change filename
56
        t._control_files.get_utf8('basis-inventory-cache')
1185.50.22 by John Arbash Meinel
Forgot to add the test.
57
1638.1.2 by Robert Collins
Change the basis-inventory file to not have the revision-id in the file name.
58
        basis_inv_txt = t.read_basis_inventory()
2100.3.15 by Aaron Bentley
get test suite passing
59
        basis_inv = bzrlib.xml7.serializer_v7.read_inventory_from_string(basis_inv_txt)
1638.1.2 by Robert Collins
Change the basis-inventory file to not have the revision-id in the file name.
60
        self.assertEquals('r2', basis_inv.revision_id)
1185.65.17 by Robert Collins
Merge from integration, mode-changes are broken.
61
        store_inv = b.repository.get_inventory('r2')
1185.50.22 by John Arbash Meinel
Forgot to add the test.
62
63
        self.assertEquals(store_inv._byid, basis_inv._byid)
64
1910.2.31 by Aaron Bentley
Fix bugs in basis inventory handling, change filename
65
    def test_wrong_format(self):
66
        """WorkingTree.basis safely ignores junk basis inventories"""
2255.2.20 by Robert Collins
Bypass irrelevant basis_inventory tests for dirstate.
67
        # This test is not applicable to DirState based trees: the basis is
68
        # not separate and ignorable.
69
        if isinstance(self.workingtree_format,
70
            bzrlib.workingtree_4.WorkingTreeFormat4):
71
            return
1910.2.31 by Aaron Bentley
Fix bugs in basis inventory handling, change filename
72
        t = self.make_branch_and_tree('.')
73
        b = t.branch
74
        open('a', 'wb').write('a\n')
75
        t.add('a')
76
        t.commit('a', rev_id='r1')
77
        t._control_files.put_utf8('basis-inventory-cache', 'booga')
78
        t.basis_tree()
79
        t._control_files.put_utf8('basis-inventory-cache', '<xml/>')
80
        t.basis_tree()
81
        t._control_files.put_utf8('basis-inventory-cache', '<inventory />')
82
        t.basis_tree()
83
        t._control_files.put_utf8('basis-inventory-cache', 
84
                                  '<inventory format="pi"/>')
85
        t.basis_tree()