/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: 2018-07-08 10:56:06 UTC
  • mto: This revision was merged to the branch mainline in revision 7030.
  • Revision ID: jelmer@jelmer.uk-20180708105606-d53hkks89qq88twu
Use separate .as_bytes method rather than __bytes__.

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):
26
26
    def test_no_shelved_changes(self):
27
27
        tree = self.make_branch_and_tree('.')
28
28
        err = self.run_bzr('shelve --list')[1]
29
 
        self.assertEqual('No shelved changes.\n', err)
 
29
        self.assertEqual(b'No shelved changes.\n', err)
30
30
 
31
31
    def make_creator(self, tree):
32
32
        creator = shelf.ShelfCreator(tree, tree.basis_tree(), [])
38
38
        creator = self.make_creator(tree)
39
39
        shelf_id = tree.get_shelf_manager().shelve_changes(creator, 'Foo')
40
40
        out, err = self.run_bzr('shelve --list', retcode=1)
41
 
        self.assertEqual('', err)
42
 
        self.assertEqual('  1: Foo\n', out)
 
41
        self.assertEqual(b'', err)
 
42
        self.assertEqual(b'  1: Foo\n', out)
 
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(b'', err)
 
50
        self.assertEqual(b'  1: Foo\n', out)
43
51
 
44
52
    def test_shelve_no_message(self):
45
53
        tree = self.make_branch_and_tree('.')
46
54
        creator = self.make_creator(tree)
47
55
        shelf_id = tree.get_shelf_manager().shelve_changes(creator)
48
56
        out, err = self.run_bzr('shelve --list', retcode=1)
49
 
        self.assertEqual('', err)
50
 
        self.assertEqual('  1: <no message>\n', out)
 
57
        self.assertEqual(b'', err)
 
58
        self.assertEqual(b'  1: <no message>\n', out)
51
59
 
52
60
    def test_shelf_order(self):
53
61
        tree = self.make_branch_and_tree('.')
56
64
        creator = self.make_creator(tree)
57
65
        tree.get_shelf_manager().shelve_changes(creator, 'Bar')
58
66
        out, err = self.run_bzr('shelve --list', retcode=1)
59
 
        self.assertEqual('', err)
60
 
        self.assertEqual('  2: Bar\n  1: Foo\n', out)
 
67
        self.assertEqual(b'', err)
 
68
        self.assertEqual(b'  2: Bar\n  1: Foo\n', out)
61
69
 
62
70
    def test_shelve_destroy(self):
63
71
        tree = self.make_branch_and_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
 
 
106
class TestUnshelvePreview(TestCaseWithTransport):
 
107
    
 
108
    def test_non_ascii(self):
 
109
        """Test that we can show a non-ascii diff that would result from unshelving"""
 
110
        
 
111
        init_content = u'Initial: \u0418\u0437\u043d\u0430\u0447\n'.encode('utf-8')
 
112
        more_content = u'More: \u0415\u0449\u0451\n'.encode('utf-8')
 
113
        next_content = init_content + more_content
 
114
        diff_part = '@@ -1,1 +1,2 @@\n %s+%s' % (init_content, more_content)
 
115
        
 
116
        tree = self.make_branch_and_tree('.')
 
117
        self.build_tree_contents([('a_file', init_content)])
 
118
        tree.add('a_file')
 
119
        tree.commit(message='committed')
 
120
        self.build_tree_contents([('a_file', next_content)])
 
121
        self.run_bzr(['shelve', '--all'])
 
122
        out, err = self.run_bzr(['unshelve', '--preview'], encoding='latin-1')
 
123
        
 
124
        self.assertContainsString(out, diff_part)
90
125
 
91
126
 
92
127
class TestShelveRelpath(TestCaseWithTransport):
97
132
        tree.add('file')
98
133
        os.chdir('tree/dir')
99
134
        self.run_bzr('shelve --all ../file')
 
135
 
 
136
    def test_shelve_via_directory(self):
 
137
        tree = self.make_branch_and_tree('tree')
 
138
        self.build_tree(['tree/file', 'tree/dir/'])
 
139
        tree.add('file')
 
140
        self.run_bzr('shelve -d tree/dir --all ../file')
 
141
 
 
142
 
 
143
class TestShelveUnshelve(TestCaseWithTransport):
 
144
 
 
145
    def test_directory(self):
 
146
        """Test --directory option"""
 
147
        tree = self.make_branch_and_tree('tree')
 
148
        self.build_tree_contents([('tree/a', b'initial\n')])
 
149
        tree.add('a')
 
150
        tree.commit(message='committed')
 
151
        self.build_tree_contents([('tree/a', b'initial\nmore\n')])
 
152
        self.run_bzr('shelve -d tree --all')
 
153
        self.assertFileEqual(b'initial\n', 'tree/a')
 
154
        self.run_bzr('unshelve --directory tree')
 
155
        self.assertFileEqual(b'initial\nmore\n', 'tree/a')