/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
743 by Martin Pool
- new simple versioning test cases
1
# Copyright (C) 2005 by Canonical Ltd
2
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
18
"""Tests of simple versioning operations"""
19
20
21
from bzrlib.selftest import InTempDir
22
23
class Mkdir(InTempDir):
24
    def runTest(self): 
744 by Martin Pool
- show nicer descriptions while running tests
25
        """Basic 'bzr mkdir' operation"""
743 by Martin Pool
- new simple versioning test cases
26
        from bzrlib.commands import run_bzr
27
        import os
28
974 by Martin Pool
- start adding tests for commit in subdir
29
        run_bzr(['init'])
30
        run_bzr(['mkdir', 'foo'])
743 by Martin Pool
- new simple versioning test cases
31
        self.assert_(os.path.isdir('foo'))
32
974 by Martin Pool
- start adding tests for commit in subdir
33
        self.assertRaises(OSError, run_bzr, ['mkdir', 'foo'])
749 by Martin Pool
- More tests for bzr mkdir
34
35
        from bzrlib.diff import compare_trees, TreeDelta
36
        from bzrlib.branch import Branch
37
        b = Branch('.')
38
        
39
        delta = compare_trees(b.basis_tree(), b.working_tree())
40
41
        self.assertEquals(len(delta.added), 1)
42
        self.assertEquals(delta.added[0][0], 'foo')
43
        self.failIf(delta.modified)
44
754 by Martin Pool
- new check for attempting to add a file in an unversioned
45
46
47
class AddInUnversioned(InTempDir):
48
    def runTest(self):
49
        """Try to add a file in an unversioned directory.
50
51
        smart_add may eventually add the parent as necessary, but simple
52
        branch add doesn't do that.
53
        """
54
        from bzrlib.branch import Branch
55
        import os
56
        from bzrlib.errors import NotVersionedError
57
58
        b = Branch('.', init=True)
59
60
        self.build_tree(['foo/',
61
                         'foo/hello'])
62
63
        self.assertRaises(NotVersionedError,
64
                          b.add,
65
                          'foo/hello')
66
        
974 by Martin Pool
- start adding tests for commit in subdir
67
        
68
class SubdirCommit(InTempDir):
69
    def runTest(self):
976 by Martin Pool
- refactor SubdirAdd tests
70
        pass
71
        
72
        
73
class SubdirAdd(InTempDir):
74
    def runTest(self):
75
        """Add in subdirectory should add only things from there down"""
974 by Martin Pool
- start adding tests for commit in subdir
76
        
77
        from bzrlib.branch import Branch
78
        from bzrlib.commands import run_bzr
79
        import os
80
        
975 by Martin Pool
- more checks for some operations in subdirectories
81
        eq = self.assertEqual
82
        ass = self.assert_
83
        chdir = os.chdir
84
        
974 by Martin Pool
- start adding tests for commit in subdir
85
        b = Branch('.', init=True)
976 by Martin Pool
- refactor SubdirAdd tests
86
        self.build_tree(['src/', 'README'])
974 by Martin Pool
- start adding tests for commit in subdir
87
        
975 by Martin Pool
- more checks for some operations in subdirectories
88
        eq(sorted(b.unknowns()),
976 by Martin Pool
- refactor SubdirAdd tests
89
           ['README', 'src'])
90
        
91
        eq(run_bzr(['add', 'src']), 0)
92
        
93
        self.build_tree(['src/foo.c'])
94
        
975 by Martin Pool
- more checks for some operations in subdirectories
95
        chdir('src')
96
        eq(run_bzr(['add']), 0)
97
        
976 by Martin Pool
- refactor SubdirAdd tests
98
        eq(sorted(b.unknowns()), 
99
           ['README'])
100
        eq(len(b.inventory), 3)
101
                
102
        chdir('..')
103
        eq(run_bzr(['add']), 0)
104
        eq(list(b.unknowns()), [])
105
           
843 by Martin Pool
- workaround for flaky TestLoader in python2.3
106
107
108
TEST_CLASSES = [
109
    Mkdir,
110
    AddInUnversioned,
111
    ]