/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 breezy/tests/blackbox/test_shelve.py

  • Committer: Jelmer Vernooij
  • Date: 2019-10-13 22:53:02 UTC
  • mfrom: (7290.1.35 work)
  • mto: This revision was merged to the branch mainline in revision 7405.
  • Revision ID: jelmer@jelmer.uk-20191013225302-vg88ztajzq05hkas
Merge lp:brz/3.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
import os
18
18
 
19
 
from bzrlib import shelf
20
 
from bzrlib.tests import TestCaseWithTransport
21
 
from bzrlib.tests.script import ScriptRunner
 
19
from breezy import shelf
 
20
from breezy.tests import TestCaseWithTransport
 
21
from breezy.tests.script import ScriptRunner
22
22
 
23
23
 
24
24
class TestShelveList(TestCaseWithTransport):
41
41
        self.assertEqual('', err)
42
42
        self.assertEqual('  1: Foo\n', out)
43
43
 
 
44
    def test_shelve_list_via_directory(self):
 
45
        tree = self.make_branch_and_tree('tree')
 
46
        creator = self.make_creator(tree)
 
47
        shelf_id = tree.get_shelf_manager().shelve_changes(creator, 'Foo')
 
48
        out, err = self.run_bzr('shelve -d tree --list', retcode=1)
 
49
        self.assertEqual('', err)
 
50
        self.assertEqual('  1: Foo\n', out)
 
51
 
44
52
    def test_shelve_no_message(self):
45
53
        tree = self.make_branch_and_tree('.')
46
54
        creator = self.make_creator(tree)
64
72
        self.build_tree(['file'])
65
73
        tree.add('file')
66
74
        self.run_bzr('shelve --all --destroy')
67
 
        self.failIfExists('file')
 
75
        self.assertPathDoesNotExist('file')
68
76
        self.assertIs(None, tree.get_shelf_manager().last_shelf())
69
77
 
70
78
    def test_unshelve_keep(self):
71
 
        # https://bugs.edge.launchpad.net/bzr/+bug/492091
 
79
        # https://bugs.launchpad.net/bzr/+bug/492091
72
80
        tree = self.make_branch_and_tree('.')
73
81
        # shelve apparently unhappy working with a tree with no root yet
74
82
        tree.commit('make root')
76
84
 
77
85
        sr = ScriptRunner()
78
86
        sr.run_script(self, '''
79
 
$ bzr add file
80
 
$ bzr shelve --all -m Foo
81
 
$ bzr shelve --list
 
87
$ brz add file
 
88
adding file
 
89
$ brz shelve --all -m Foo
 
90
2>Selected changes:
 
91
2>-D  file
 
92
2>Changes shelved with id "1".
 
93
$ brz shelve --list
82
94
  1: Foo
83
 
$ bzr unshelve --keep
84
 
$ bzr shelve --list
 
95
$ brz unshelve --keep
 
96
2>Using changes with id "1".
 
97
2>Message: Foo
 
98
2>+N  file
 
99
2>All changes applied successfully.
 
100
$ brz shelve --list
85
101
  1: Foo
86
102
$ cat file
87
103
contents of file
88
104
''')
89
105
 
90
106
 
 
107
class TestUnshelvePreview(TestCaseWithTransport):
 
108
 
 
109
    def test_non_ascii(self):
 
110
        """Test that we can show a non-ascii diff that would result from unshelving"""
 
111
 
 
112
        init_content = u'Initial: \u0418\u0437\u043d\u0430\u0447\n'.encode(
 
113
            'utf-8')
 
114
        more_content = u'More: \u0415\u0449\u0451\n'.encode('utf-8')
 
115
        next_content = init_content + more_content
 
116
        diff_part = b'@@ -1,1 +1,2 @@\n %s+%s' % (init_content, more_content)
 
117
 
 
118
        tree = self.make_branch_and_tree('.')
 
119
        self.build_tree_contents([('a_file', init_content)])
 
120
        tree.add('a_file')
 
121
        tree.commit(message='committed')
 
122
        self.build_tree_contents([('a_file', next_content)])
 
123
        self.run_bzr(['shelve', '--all'])
 
124
        out, err = self.run_bzr_raw(
 
125
            ['unshelve', '--preview'], encoding='latin-1')
 
126
 
 
127
        self.assertContainsString(out, diff_part)
 
128
 
91
129
 
92
130
class TestShelveRelpath(TestCaseWithTransport):
93
131
 
97
135
        tree.add('file')
98
136
        os.chdir('tree/dir')
99
137
        self.run_bzr('shelve --all ../file')
 
138
 
 
139
    def test_shelve_via_directory(self):
 
140
        tree = self.make_branch_and_tree('tree')
 
141
        self.build_tree(['tree/file', 'tree/dir/'])
 
142
        tree.add('file')
 
143
        self.run_bzr('shelve -d tree/dir --all ../file')
 
144
 
 
145
 
 
146
class TestShelveUnshelve(TestCaseWithTransport):
 
147
 
 
148
    def test_directory(self):
 
149
        """Test --directory option"""
 
150
        tree = self.make_branch_and_tree('tree')
 
151
        self.build_tree_contents([('tree/a', b'initial\n')])
 
152
        tree.add('a')
 
153
        tree.commit(message='committed')
 
154
        self.build_tree_contents([('tree/a', b'initial\nmore\n')])
 
155
        self.run_bzr('shelve -d tree --all')
 
156
        self.assertFileEqual(b'initial\n', 'tree/a')
 
157
        self.run_bzr('unshelve --directory tree')
 
158
        self.assertFileEqual(b'initial\nmore\n', 'tree/a')