~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-01-02 08:23:44 UTC
  • mfrom: (3140.1.9 find-branches)
  • Revision ID: pqm@pqm.ubuntu.com-20080102082344-qret383z2bdk1ud4
Optimize find_branches for standalone repositories (abentley)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
"""Black-box tests for bzr version."""
18
18
 
19
19
import bzrlib
20
 
from bzrlib.tests.blackbox import ExternalBase
21
 
 
22
 
 
23
 
class TestVersion(ExternalBase):
 
20
from bzrlib import osutils, trace
 
21
from bzrlib.tests import (
 
22
    probe_unicode_in_user_encoding,
 
23
    TestCase,
 
24
    TestCaseInTempDir,
 
25
    TestSkipped,
 
26
    )
 
27
 
 
28
 
 
29
class TestVersion(TestCase):
24
30
 
25
31
    def test_version(self):
26
32
        out = self.run_bzr("version")[0]
27
33
        self.assertTrue(len(out) > 0)
28
34
        self.assertEquals(1, out.count(bzrlib.__version__))
29
 
        self.assertEquals(1, out.count("Using python interpreter:"))
30
 
        self.assertEquals(1, out.count("Using python standard library:"))
31
 
        self.assertEquals(1, out.count("Using bzrlib:"))
32
 
        self.assertEquals(1, out.count("Using bazaar configuration:"))
 
35
        self.assertContainsRe(out, r"(?m)^  Python interpreter:")
 
36
        self.assertContainsRe(out, r"(?m)^  Python standard library:")
 
37
        self.assertContainsRe(out, r"(?m)^  bzrlib:")
 
38
        self.assertContainsRe(out, r"(?m)^  Bazaar configuration:")
 
39
        self.assertContainsRe(out, r'(?m)^  Bazaar log file:.*bzr\.log')
 
40
 
 
41
 
 
42
class TestVersionUnicodeOutput(TestCaseInTempDir):
 
43
 
 
44
    def _check(self, args):
 
45
        # Even though trace._bzr_log_filename variable
 
46
        # is used only to keep actual log filename
 
47
        # and changing this variable in selftest
 
48
        # don't change main .bzr.log location,
 
49
        # and therefore pretty safe,
 
50
        # but we run these tests in separate temp dir
 
51
        # with relative unicoded path
 
52
        old_trace_file = trace._bzr_log_filename
 
53
        trace._bzr_log_filename = u'\u1234/.bzr.log'
 
54
        try:
 
55
            out = self.run_bzr(args)[0]
 
56
        finally:
 
57
            trace._bzr_log_filename = old_trace_file
 
58
        self.assertTrue(len(out) > 0)
 
59
        self.assertContainsRe(out, r'(?m)^  Bazaar log file:.*bzr\.log')
 
60
 
 
61
    def test_command(self):
 
62
        self._check("version")
 
63
 
 
64
    def test_flag(self):
 
65
        self._check("--version")
 
66
 
 
67
    def test_unicode_bzr_home(self):
 
68
        uni_val, str_val = probe_unicode_in_user_encoding()
 
69
        if uni_val is None:
 
70
            raise TestSkipped('Cannot find a unicode character that works in'
 
71
                              ' encoding %s' % (bzrlib.user_encoding,))
 
72
 
 
73
        osutils.set_or_unset_env('BZR_HOME', str_val)
 
74
        out = self.run_bzr("version")[0]
 
75
        self.assertTrue(len(out) > 0)
 
76
        self.assertContainsRe(out, r"(?m)^  Bazaar configuration: " + str_val)