/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) 2006 Canonical Ltd
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
2
#
1551.2.17 by Aaron Bentley
Fixed conflict commands
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
#
1551.2.17 by Aaron Bentley
Fixed conflict commands
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
#
1551.2.17 by Aaron Bentley
Fixed conflict commands
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
18
1652.1.1 by Martin Pool
Fix 'bzr resolve' run from subdirectory
19
from bzrlib.workingtree import WorkingTree
1551.2.17 by Aaron Bentley
Fixed conflict commands
20
from bzrlib.tests.blackbox import ExternalBase
21
1692.7.2 by Martin Pool
doc
22
# FIXME: These don't really look at the output of the conflict commands, just
23
# the number of lines - there should be more examination.
24
1551.2.17 by Aaron Bentley
Fixed conflict commands
25
class TestConflicts(ExternalBase):
26
    def setUp(self):
27
        super(ExternalBase, self).setUp()
28
        try:
29
            os.mkdir('a')
30
        except:
31
            raise os.getcwd()
32
        os.chdir('a')
33
        self.runbzr('init')
34
        file('myfile', 'wb').write('contentsa\n')
35
        file('my_other_file', 'wb').write('contentsa\n')
1551.9.8 by Aaron Bentley
Add --text parameter to conflicts
36
        os.mkdir('mydir')
1551.2.17 by Aaron Bentley
Fixed conflict commands
37
        self.runbzr('add')
38
        self.runbzr('commit -m new')
39
        os.chdir('..')
40
        self.runbzr('branch a b')
41
        os.chdir('b')
42
        file('myfile', 'wb').write('contentsb\n')
43
        file('my_other_file', 'wb').write('contentsb\n')
1551.9.8 by Aaron Bentley
Add --text parameter to conflicts
44
        self.runbzr('mv mydir mydir2')
1551.2.17 by Aaron Bentley
Fixed conflict commands
45
        self.runbzr('commit -m change')
46
        os.chdir('../a')
47
        file('myfile', 'wb').write('contentsa2\n')
48
        file('my_other_file', 'wb').write('contentsa2\n')
1551.9.8 by Aaron Bentley
Add --text parameter to conflicts
49
        self.runbzr('mv mydir mydir3')
1551.2.17 by Aaron Bentley
Fixed conflict commands
50
        self.runbzr('commit -m change')
51
        self.runbzr('merge ../b', retcode=1)
52
53
    def test_conflicts(self):
54
        conflicts = self.runbzr('conflicts', backtick=True)
1551.9.8 by Aaron Bentley
Add --text parameter to conflicts
55
        self.assertEqual(3, len(conflicts.splitlines()))
56
57
    def test_conflicts_text(self):
58
        conflicts = self.run_bzr('conflicts', '--text')[0].splitlines()
59
        self.assertEqual(['my_other_file', 'myfile'], conflicts)
1551.2.17 by Aaron Bentley
Fixed conflict commands
60
61
    def test_resolve(self):
62
        self.runbzr('resolve', retcode=3)
63
        self.runbzr('resolve myfile')
64
        conflicts = self.runbzr('conflicts', backtick=True)
1551.9.8 by Aaron Bentley
Add --text parameter to conflicts
65
        self.assertEqual(2, len(conflicts.splitlines()))
1551.2.17 by Aaron Bentley
Fixed conflict commands
66
        self.runbzr('resolve my_other_file')
1551.9.8 by Aaron Bentley
Add --text parameter to conflicts
67
        self.runbzr('resolve mydir2')
1551.2.17 by Aaron Bentley
Fixed conflict commands
68
        conflicts = self.runbzr('conflicts', backtick=True)
69
        self.assertEqual(len(conflicts.splitlines()), 0)
70
71
    def test_resolve_all(self):
72
        self.runbzr('resolve --all')
73
        conflicts = self.runbzr('conflicts', backtick=True)
74
        self.assertEqual(len(conflicts.splitlines()), 0)
75
1652.1.1 by Martin Pool
Fix 'bzr resolve' run from subdirectory
76
    def test_resolve_in_subdir(self):
77
        """resolve when run from subdirectory should handle relative paths"""
78
        orig_dir = os.getcwdu()
79
        try:
80
            os.mkdir("subdir")
81
            os.chdir("subdir")
82
            self.runbzr("resolve ../myfile")
83
            os.chdir("../../b")
84
            self.runbzr("resolve ../a/myfile")
85
            wt = WorkingTree.open_containing('.')[0]
86
            conflicts = wt.conflicts()
87
            if not conflicts.is_empty():
88
                self.fail("tree still contains conflicts: %r" % conflicts)
89
        finally:
90
            os.chdir(orig_dir)