~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to tests/blackbox.py

  • Committer: Michael Ellerman
  • Date: 2005-11-29 07:12:26 UTC
  • mto: (0.3.1 shelf-dev) (325.1.2 bzrtools)
  • mto: This revision was merged to the branch mainline in revision 334.
  • Revision ID: michael@ellerman.id.au-20051129071226-a04b3f827880025d
Unshelve --pick was broken, because we deleted the whole patch, even when only
part of it was unshelved. So now if we unshelve part of a patch, the patch is
replaced with a new patch that has just the unshelved parts. That's a long way
of saying it does what you'd expect.

Implementing this required changing HunkSelector to return both the selected,
and unselected hunks (ie. patches to shelve, and patches to keep).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from bzrlib.tests.blackbox import ExternalBase
2
 
from unittest import makeSuite
3
 
import os.path
4
 
class TestBzrTools(ExternalBase):
5
 
    @staticmethod
6
 
    def touch(filename):
7
 
        file(filename, 'wb').write('')
8
 
 
9
 
    def test_clean_tree(self):
10
 
        self.runbzr('init')
11
 
        self.runbzr('ignore *~')
12
 
        self.runbzr('ignore *.pyc')
13
 
        self.touch('name')
14
 
        self.touch('name~')
15
 
        assert os.path.lexists('name~')
16
 
        self.touch('name.pyc')
17
 
        self.runbzr('clean-tree')
18
 
        assert os.path.lexists('name~')
19
 
        assert not os.path.lexists('name')
20
 
        self.runbzr('clean-tree --detritus')
21
 
        assert not os.path.lexists('name~')
22
 
        assert os.path.lexists('name.pyc')
23
 
        self.runbzr('clean-tree --ignored')
24
 
        assert not os.path.lexists('name.pyc')
25
 
 
26
 
    def test_shelve(self):
27
 
        self.runbzr('init')
28
 
        self.runbzr('commit -m uc --unchanged')
29
 
        self.runbzr('shelve -r 1 -m foo --all', retcode=3)
30
 
        file('foo', 'wb').write('foo')
31
 
        self.runbzr('add foo')
32
 
        self.runbzr('commit -m foo')
33
 
        self.runbzr('shelve -r 1 -m foo --all', retcode=0)
34
 
 
35
 
    def test_fetch_ghosts(self):
36
 
        self.runbzr('init')
37
 
        self.runbzr('fetch-ghosts .')
38
 
 
39
 
    def test_patch(self):
40
 
        self.runbzr('init')
41
 
        file('myfile', 'wb').write('hello')
42
 
        self.runbzr('add')
43
 
        self.runbzr('commit -m hello')
44
 
        file('myfile', 'wb').write('goodbye')
45
 
        file('mypatch', 'wb').write(self.runbzr('diff', retcode=1, backtick=1))
46
 
        self.runbzr('revert')
47
 
        assert file('myfile', 'rb').read() == 'hello'
48
 
        self.runbzr('patch mypatch')
49
 
        assert file('myfile', 'rb').read() == 'goodbye'
50
 
 
51
 
    def test_branch_history(self):
52
 
        self.runbzr('init')
53
 
        file('myfile', 'wb').write('hello')
54
 
        self.runbzr('add')
55
 
        self.runbzr('commit -m hello')
56
 
        self.runbzr('branch-history')
57
 
 
58
 
    def test_branch_history(self):
59
 
        self.runbzr('init')
60
 
        file('myfile', 'wb').write('hello')
61
 
        self.runbzr('add')
62
 
        self.runbzr('commit -m hello')
63
 
        self.runbzr('graph-ancestry . graph.dot')
64
 
        self.runbzr('branch . my_branch')
65
 
        self.runbzr('graph-ancestry . graph.dot --merge-branch my_branch')
66
 
 
67
 
    def test_fetch_ghosts(self):
68
 
        self.runbzr('init')
69
 
        file('myfile', 'wb').write('hello')
70
 
        self.runbzr('add')
71
 
        self.runbzr('commit -m hello')
72
 
        self.runbzr('branch . my_branch')
73
 
        self.runbzr('fetch-ghosts my_branch')
74
 
 
75
 
    def test_zap(self):
76
 
        self.runbzr('init source')
77
 
        self.runbzr('checkout --lightweight source checkout')
78
 
        self.runbzr('zap checkout')
79
 
        self.assertIs(False, os.path.exists('checkout'))
80
 
        self.assertIs(True, os.path.exists('source'))
81
 
 
82
 
    def test_zap_branch(self):
83
 
        self.runbzr('init source')
84
 
        self.runbzr('checkout --lightweight source checkout')
85
 
        self.runbzr('zap --branch checkout', retcode=3)
86
 
        self.assertIs(True, os.path.exists('checkout'))
87
 
        self.assertIs(True, os.path.exists('source'))
88
 
        self.runbzr('branch source source2')
89
 
        self.runbzr('checkout --lightweight source2 checkout2')
90
 
        self.runbzr('zap --branch checkout2')
91
 
        self.assertIs(False, os.path.exists('checkout2'))
92
 
        self.assertIs(False, os.path.exists('source2'))
93
 
 
94
 
    def test_branches(self):
95
 
        self.runbzr('init source')
96
 
        self.runbzr('init source/subsource')
97
 
        self.runbzr('checkout --lightweight source checkout')
98
 
        self.runbzr('init checkout/subcheckout')
99
 
        self.runbzr('init checkout/.bzr/subcheckout')
100
 
        out = self.capture('branches')
101
 
        lines = out.split('\n')
102
 
        self.assertIs(True, 'source' in lines)
103
 
        self.assertIs(True, 'source/subsource' in lines)
104
 
        self.assertIs(True, 'checkout/subcheckout' in lines)
105
 
        self.assertIs(True, 'checkout' not in lines)
106
 
        self.assertIs(True, 'checkout/.bzr/subcheckout' not in lines)
107
 
 
108
 
    def test_import_upstream(self):
109
 
        self.runbzr('init source')
110
 
        os.mkdir('source/src')
111
 
        f = file('source/src/myfile', 'wb')
112
 
        f.write('hello?')
113
 
        f.close()
114
 
        os.chdir('source')
115
 
        self.runbzr('add')
116
 
        self.runbzr('commit -m hello')
117
 
        self.runbzr('export ../source-0.1.tar.gz')
118
 
        self.runbzr('export ../source-0.1.tar.bz2')
119
 
        self.runbzr('init ../import')
120
 
        os.chdir('../import')
121
 
        self.runbzr('import ../source-0.1.tar.gz')
122
 
        self.failUnlessExists('src/myfile')
123
 
        result = self.runbzr('import ../source-0.1.tar.gz', retcode=3)[1]
124
 
        self.assertContainsRe(result, 'Working tree has uncommitted changes')
125
 
        self.runbzr('commit -m commit')
126
 
        self.runbzr('import ../source-0.1.tar.gz')
127
 
        os.chdir('..')
128
 
        self.runbzr('init import2')
129
 
        self.runbzr('import source-0.1.tar.gz import2')
130
 
        self.failUnlessExists('import2/src/myfile')
131
 
        self.runbzr('import source-0.1.tar.gz import3')
132
 
        self.failUnlessExists('import3/src/myfile')
133
 
        self.runbzr('import source-0.1.tar.bz2 import4')
134
 
        self.failUnlessExists('import4/src/myfile')
135
 
 
136
 
    def test_shove(self):
137
 
        self.runbzr('init source')
138
 
        f = file('source/file', 'wb')
139
 
        f.write('hello\n')
140
 
        f.close()
141
 
        self.runbzr('add source/file')
142
 
        self.runbzr('commit source -m foo')
143
 
        self.runbzr('branch source target1')
144
 
        self.runbzr('branch source target2')
145
 
        f = file('source/file', 'wb')
146
 
        f.write('goodbye\n')
147
 
        f.close()
148
 
        self.runbzr('shove target1 source')
149
 
        f = file('target1/file', 'rb')
150
 
        self.assertEqual(f.read(), 'goodbye\n')
151
 
        f.close()
152
 
        os.chdir('source')
153
 
        self.runbzr('shove target2', retcode=3)
154
 
        self.runbzr('shove ../target2')
155
 
        f = file('../target2/file', 'rb')
156
 
        self.assertEqual(f.read(), 'goodbye\n')
157
 
        f.close()
158
 
 
159
 
def test_suite():
160
 
    return makeSuite(TestBzrTools)