/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/blackbox/test_view.py

  • Committer: John Arbash Meinel
  • Date: 2009-06-18 18:18:36 UTC
  • mto: This revision was merged to the branch mainline in revision 4461.
  • Revision ID: john@arbash-meinel.com-20090618181836-biodfkat9a8eyzjz
The new add_inventory_by_delta is returning a CHKInventory when mapping from NULL
Which is completely valid, but 'broke' one of the tests.
So to fix it, changed the test to use CHKInventories on both sides, and add an __eq__
member. The nice thing is that CHKInventory.__eq__ is fairly cheap, since it only
has to check the root keys.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2008 Canonical Ltd
 
2
#
 
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.
 
7
#
 
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.
 
12
#
 
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
16
 
 
17
"""Tests for the view command"""
 
18
 
 
19
from bzrlib import bzrdir
 
20
from bzrlib.tests import TestCaseWithTransport
 
21
from bzrlib.workingtree import WorkingTree
 
22
 
 
23
 
 
24
class TestViewUI(TestCaseWithTransport):
 
25
 
 
26
    def make_branch_and_tree(self):
 
27
        # we need to use a specific format because the default format
 
28
        # doesn't support views yet
 
29
        format = bzrdir.format_registry.make_bzrdir('development6-rich-root')
 
30
        return TestCaseWithTransport.make_branch_and_tree(self, '.',
 
31
            format=format)
 
32
 
 
33
    def test_view_command_help(self):
 
34
        out, err = self.run_bzr('help view')
 
35
        self.assertContainsRe(out, 'Manage filtered views')
 
36
 
 
37
    def test_define_view(self):
 
38
        wt = self.make_branch_and_tree()
 
39
        # Check definition of a new view
 
40
        out, err = self.run_bzr('view a b c')
 
41
        self.assertEquals(out, "Using 'my' view: a, b, c\n")
 
42
        out, err = self.run_bzr('view e f --name foo')
 
43
        self.assertEquals(out, "Using 'foo' view: e, f\n")
 
44
        # Check re-definition of an existing view
 
45
        out, err = self.run_bzr('view p q')
 
46
        self.assertEquals(out, "Using 'foo' view: p, q\n")
 
47
        out, err = self.run_bzr('view r s --name my')
 
48
        self.assertEquals(out, "Using 'my' view: r, s\n")
 
49
        # Check attempts to define the 'off' view are prevented
 
50
        out, err = self.run_bzr('view a --name off', retcode=3)
 
51
        self.assertContainsRe(err, "Cannot change the 'off' pseudo view")
 
52
 
 
53
    def test_list_view(self):
 
54
        wt = self.make_branch_and_tree()
 
55
        # Check list of the current view
 
56
        out, err = self.run_bzr('view')
 
57
        self.assertEquals(out, "No current view.\n")
 
58
        self.run_bzr('view a b c')
 
59
        out, err = self.run_bzr('view')
 
60
        self.assertEquals(out, "'my' view is: a, b, c\n")
 
61
        # Check list of a named view
 
62
        self.run_bzr('view e f --name foo')
 
63
        out, err = self.run_bzr('view --name my')
 
64
        self.assertEquals(out, "'my' view is: a, b, c\n")
 
65
        out, err = self.run_bzr('view --name foo')
 
66
        self.assertEquals(out, "'foo' view is: e, f\n")
 
67
        # Check list of all views
 
68
        out, err = self.run_bzr('view --all')
 
69
        self.assertEquals(out.splitlines(), [
 
70
            "Views defined:",
 
71
            "=> foo                  e, f",
 
72
            "   my                   a, b, c",
 
73
            ])
 
74
        # Check list of an unknown view
 
75
        out, err = self.run_bzr('view --name bar', retcode=3)
 
76
        self.assertContainsRe(err, "No such view")
 
77
 
 
78
    def test_delete_view(self):
 
79
        wt = self.make_branch_and_tree()
 
80
        # Check delete of the current view
 
81
        out, err = self.run_bzr('view --delete', retcode=3)
 
82
        self.assertContainsRe(err, "No current view to delete")
 
83
        self.run_bzr('view a b c')
 
84
        out, err = self.run_bzr('view --delete')
 
85
        self.assertEquals(out, "Deleted 'my' view.\n")
 
86
        # Check delete of a named view
 
87
        self.run_bzr('view e f --name foo')
 
88
        out, err = self.run_bzr('view --name foo --delete')
 
89
        self.assertEquals(out, "Deleted 'foo' view.\n")
 
90
        # Check delete of all views
 
91
        out, err = self.run_bzr('view --delete --all')
 
92
        self.assertEquals(out, "Deleted all views.\n")
 
93
        # Check delete of an unknown view
 
94
        out, err = self.run_bzr('view --delete --name bar', retcode=3)
 
95
        self.assertContainsRe(err, "No such view")
 
96
        # Check bad usage is reported to the user
 
97
        out, err = self.run_bzr('view --delete --switch x', retcode=3)
 
98
        self.assertContainsRe(err,
 
99
            "Both --delete and --switch specified")
 
100
        out, err = self.run_bzr('view --delete a b c', retcode=3)
 
101
        self.assertContainsRe(err, "Both --delete and a file list specified")
 
102
 
 
103
    def test_switch_view(self):
 
104
        wt = self.make_branch_and_tree()
 
105
        # Check switching to a named view
 
106
        self.run_bzr('view a b c')
 
107
        self.run_bzr('view e f --name foo')
 
108
        out, err = self.run_bzr('view --switch my')
 
109
        self.assertEquals(out, "Using 'my' view: a, b, c\n")
 
110
        # Check switching off the current view does not delete it
 
111
        out, err = self.run_bzr('view --switch off')
 
112
        self.assertEquals(out, "Disabled 'my' view.\n")
 
113
        # Check error reporting when attempt to switch off again
 
114
        out, err = self.run_bzr('view --switch off', retcode=3)
 
115
        self.assertContainsRe(err, "No current view to disable")
 
116
        # Check bad usage is reported to the user
 
117
        out, err = self.run_bzr('view --switch x --all', retcode=3)
 
118
        self.assertContainsRe(err, "Both --switch and --all specified")