~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to test_bb_version_info.py

  • Committer: John Arbash Meinel
  • Date: 2005-12-29 00:29:09 UTC
  • mto: (2022.1.1 version-info-55794)
  • mto: This revision was merged to the branch mainline in revision 2028.
  • Revision ID: john@arbash-meinel.com-20051229002909-0c9f16858ecfebc7
Updated the blackbox tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
Blackbox tests for version_info
19
19
"""
20
20
 
 
21
import os
 
22
import sys
21
23
from bzrlib.tests import TestCase, TestCaseInTempDir
22
24
 
23
25
 
28
30
 
29
31
        bzr('version-info', '--format', 'quijibo', retcode=3)
30
32
 
 
33
    def create_branch(self):
 
34
        bzr = self.run_bzr
 
35
 
 
36
        os.mkdir('branch')
 
37
        os.chdir('branch')
 
38
        bzr('init')
 
39
        open('a', 'wb').write('a file\n')
 
40
        bzr('add')
 
41
        bzr('commit', '-m', 'adding a')
 
42
 
 
43
        open('b', 'wb').write('b file\n')
 
44
        bzr('add')
 
45
        bzr('commit', '-m', 'adding b')
 
46
        os.chdir('..')
 
47
 
 
48
    def get_revisions(self):
 
49
        os.chdir('branch')
 
50
        revisions = self.run_bzr('revision-history')[0].strip().split('\n')
 
51
        os.chdir('..')
 
52
        return revisions
 
53
 
 
54
    def test_rio(self):
 
55
        self.create_branch()
 
56
 
 
57
        def regen(*args):
 
58
            return self.run_bzr('version-info', '--format', 'rio', 
 
59
                                'branch', *args)[0]
 
60
 
 
61
        revisions = self.get_revisions()
 
62
        txt = regen()
 
63
        self.assertContainsRe(txt, 'date:')
 
64
        self.assertContainsRe(txt, 'revno: 2')
 
65
        self.assertContainsRe(txt, 'revision_id: ' + revisions[-1])
 
66
 
 
67
        txt = regen('--all')
 
68
        self.assertContainsRe(txt, 'date:')
 
69
        self.assertContainsRe(txt, 'revno: 2')
 
70
        self.assertContainsRe(txt, 'revision_id: ' + revisions[-1])
 
71
        self.assertContainsRe(txt, 'clean: True')
 
72
        self.assertContainsRe(txt, 'revisions:')
 
73
        for rev_id in revisions:
 
74
            self.assertContainsRe(txt, 'id: ' + rev_id)
 
75
        self.assertContainsRe(txt, 'message: adding a')
 
76
        self.assertContainsRe(txt, 'message: adding b')
 
77
 
 
78
        txt = regen('--check-clean')
 
79
        self.assertContainsRe(txt, 'clean: True')
 
80
 
 
81
        open('branch/c', 'wb').write('now unclean\n')
 
82
        txt = regen('--check-clean')
 
83
        self.assertContainsRe(txt, 'clean: False')
 
84
        os.remove('branch/c')
 
85
 
 
86
        # Make sure it works without a directory
 
87
        os.chdir('branch')
 
88
        txt = self.run_bzr('version-info', '--format', 'rio')
 
89
 
 
90
    def test_python(self):
 
91
        def bzr(*args, **kwargs):
 
92
            return self.run_bzr(*args, **kwargs)[0]
 
93
 
 
94
        def regen(*args):
 
95
            txt = self.run_bzr('version-info', '--format', 'python',
 
96
                               'branch', *args)[0]
 
97
            outf = open('test_version_information.py', 'wb')
 
98
            outf.write(txt)
 
99
            outf.close()
 
100
            try:
 
101
                sys.path.append(os.getcwdu())
 
102
                import test_version_information as tvi
 
103
                reload(tvi)
 
104
            finally:
 
105
                sys.path.pop()
 
106
            # Make sure the module isn't cached
 
107
            sys.modules.pop('tvi', None)
 
108
            sys.modules.pop('test_version_information', None)
 
109
            # Delete the compiled versions, because we are generating
 
110
            # a new file fast enough that python doen't detect it
 
111
            # needs to recompile, and using sleep() just makes the
 
112
            # test slow
 
113
            if os.path.exists('test_version_information.pyc'):
 
114
                os.remove('test_version_information.pyc')
 
115
            if os.path.exists('test_version_information.pyo'):
 
116
                os.remove('test_version_information.pyo')
 
117
            return tvi
 
118
 
 
119
        self.create_branch()
 
120
        revisions = self.get_revisions()
 
121
 
 
122
        tvi = regen()
 
123
        self.assertEqual(tvi.version_info['revno'], 2)
 
124
        self.failUnless(tvi.version_info.has_key('date'))
 
125
        self.assertEqual(revisions[-1], tvi.version_info['revision_id'])
 
126
 
 
127
        tvi = regen('--all')
 
128
        self.assertEqual([(revisions[0], 'adding a'),
 
129
                          (revisions[1], 'adding b')],
 
130
                         tvi.version_info['revisions'])
 
131
        self.assertEqual(True, tvi.version_info['clean'])
 
132