~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-06-22 17:11:20 UTC
  • mfrom: (4398.8.10 1.16-commit-fulltext)
  • Revision ID: pqm@pqm.ubuntu.com-20090622171120-fuxez9ylfqpxynqn
(jam) Add VF._add_text and reduce memory overhead during commit (see
        bug #109114)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2008 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
18
18
 
19
19
from bzrlib import shelf
20
20
from bzrlib.tests import TestCaseWithTransport
21
 
from bzrlib.tests.script import ScriptRunner
22
 
 
23
21
 
24
22
class TestShelveList(TestCaseWithTransport):
25
23
 
41
39
        self.assertEqual('', err)
42
40
        self.assertEqual('  1: Foo\n', out)
43
41
 
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
 
 
52
42
    def test_shelve_no_message(self):
53
43
        tree = self.make_branch_and_tree('.')
54
44
        creator = self.make_creator(tree)
72
62
        self.build_tree(['file'])
73
63
        tree.add('file')
74
64
        self.run_bzr('shelve --all --destroy')
75
 
        self.assertPathDoesNotExist('file')
 
65
        self.failIfExists('file')
76
66
        self.assertIs(None, tree.get_shelf_manager().last_shelf())
77
67
 
78
 
    def test_unshelve_keep(self):
79
 
        # https://bugs.launchpad.net/bzr/+bug/492091
80
 
        tree = self.make_branch_and_tree('.')
81
 
        # shelve apparently unhappy working with a tree with no root yet
82
 
        tree.commit('make root')
83
 
        self.build_tree(['file'])
84
 
 
85
 
        sr = ScriptRunner()
86
 
        sr.run_script(self, '''
87
 
$ bzr add file
88
 
adding file
89
 
$ bzr shelve --all -m Foo
90
 
2>Selected changes:
91
 
2>-D  file
92
 
2>Changes shelved with id "1".
93
 
$ bzr shelve --list
94
 
  1: Foo
95
 
$ bzr unshelve --keep
96
 
2>Using changes with id "1".
97
 
2>Message: Foo
98
 
2>+N  file
99
 
2>All changes applied successfully.
100
 
$ bzr shelve --list
101
 
  1: Foo
102
 
$ cat file
103
 
contents of file
104
 
''')
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)
125
 
 
126
68
 
127
69
class TestShelveRelpath(TestCaseWithTransport):
128
70
 
132
74
        tree.add('file')
133
75
        os.chdir('tree/dir')
134
76
        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', 'initial\n')])
149
 
        tree.add('a')
150
 
        tree.commit(message='committed')
151
 
        self.build_tree_contents([('tree/a', 'initial\nmore\n')])
152
 
        self.run_bzr('shelve -d tree --all')
153
 
        self.assertFileEqual('initial\n', 'tree/a')
154
 
        self.run_bzr('unshelve --directory tree')
155
 
        self.assertFileEqual('initial\nmore\n', 'tree/a')