~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to tests/blackbox.py

  • Committer: Michael Ellerman
  • Date: 2006-02-06 13:52:53 UTC
  • mto: (0.1.73 shelf-tmp)
  • mto: This revision was merged to the branch mainline in revision 334.
  • Revision ID: michael@ellerman.id.au-20060206135253-46d07a6db0239dbb
For the moment at least storing scads of stuff under .bzr isn't really
supported by the bzr API, so move the shelf back out of .bzr into .shelf.

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