~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_dpush.py

  • Committer: Andrew Bennetts
  • Date: 2011-02-25 08:45:27 UTC
  • mto: This revision was merged to the branch mainline in revision 5695.
  • Revision ID: andrew.bennetts@canonical.com-20110225084527-0ucp7p00d00hoqon
Add another test.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2009, 2010, 2011 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
29
29
    )
30
30
from bzrlib.tests import (
31
31
    blackbox,
 
32
    script,
32
33
    test_foreign,
33
34
    )
34
35
from bzrlib.tests.blackbox import test_push
35
 
 
36
 
 
37
 
def load_tests(standard_tests, module, loader):
38
 
    """Multiply tests for the dpush command."""
39
 
    result = loader.suiteClass()
40
 
 
41
 
    # one for each king of change
42
 
    changes_tests, remaining_tests = tests.split_suite_by_condition(
43
 
        standard_tests, tests.condition_isinstance((
44
 
                TestDpushStrictWithChanges,
45
 
                )))
46
 
    changes_scenarios = [
47
 
        ('uncommitted',
48
 
         dict(_changes_type= '_uncommitted_changes')),
49
 
        ('pending-merges',
50
 
         dict(_changes_type= '_pending_merges')),
51
 
        ('out-of-sync-trees',
52
 
         dict(_changes_type= '_out_of_sync_trees')),
53
 
        ]
54
 
    tests.multiply_tests(changes_tests, changes_scenarios, result)
55
 
    # No parametrization for the remaining tests
56
 
    result.addTests(remaining_tests)
57
 
 
58
 
    return result
59
 
 
60
 
 
61
 
class TestDpush(blackbox.ExternalBase):
 
36
from bzrlib.tests.scenarios import (
 
37
    load_tests_apply_scenarios,
 
38
    )
 
39
 
 
40
 
 
41
load_tests = load_tests_apply_scenarios
 
42
 
 
43
 
 
44
class TestDpush(tests.TestCaseWithTransport):
62
45
 
63
46
    def setUp(self):
64
47
        super(TestDpush, self).setUp()
86
69
        self.build_tree(("dc/foo", "blaaaa"))
87
70
        dc.open_workingtree().commit('msg')
88
71
 
89
 
        output, error = self.run_bzr("dpush -d dc d")
90
 
        self.assertEquals(error, "Pushed up to revision 2.\n")
91
 
        self.check_output("", "status dc")
 
72
        script.run_script(self, """
 
73
            $ bzr dpush -d dc d
 
74
            2>Pushed up to revision 2.
 
75
            $ bzr status dc
 
76
            """)
92
77
 
93
78
    def test_dpush_new(self):
94
79
        b = self.make_dummy_builder('d').get_branch()
99
84
        dc_tree.add("foofile")
100
85
        dc_tree.commit("msg")
101
86
 
102
 
        self.check_output("", "dpush -d dc d")
103
 
        self.check_output("2\n", "revno dc")
104
 
        self.check_output("", "status dc")
 
87
        script.run_script(self, '''
 
88
            $ bzr dpush -d dc d
 
89
            2>Pushed up to revision 2.
 
90
            $ bzr revno dc
 
91
            2
 
92
            $ bzr status dc
 
93
            ''')
105
94
 
106
95
    def test_dpush_wt_diff(self):
107
96
        b = self.make_dummy_builder('d').get_branch()
113
102
        newrevid = dc_tree.commit('msg')
114
103
 
115
104
        self.build_tree_contents([("dc/foofile", "blaaaal")])
116
 
        self.check_output("", "dpush -d dc d --no-strict")
 
105
        script.run_script(self, '''
 
106
            $ bzr dpush -d dc d --no-strict
 
107
            2>Pushed up to revision 2.
 
108
            ''')
117
109
        self.assertFileEqual("blaaaal", "dc/foofile")
118
110
        # if the dummy vcs wasn't that dummy we could uncomment the line below
119
111
        # self.assertFileEqual("blaaaa", "d/foofile")
120
 
        self.check_output('modified:\n  foofile\n', "status dc")
 
112
        script.run_script(self, '''
 
113
            $ bzr status dc
 
114
            modified:
 
115
              foofile
 
116
            ''')
121
117
 
122
118
    def test_diverged(self):
123
119
        builder = self.make_dummy_builder('d')
166
162
class TestDpushStrictWithChanges(TestDpushStrictMixin,
167
163
                                 test_push.TestPushStrictWithChanges):
168
164
 
 
165
    scenarios = test_push.strict_push_change_scenarios
 
166
 
169
167
    _changes_type = None # Set by load_tests
170
168
 
171
169
    def setUp(self):
174
172
 
175
173
    def test_push_with_revision(self):
176
174
        raise tests.TestNotApplicable('dpush does not handle --revision')
177