3287.11.1
by Martin Pool
Don't require that the version number occur only once in --version |
1 |
# Copyright (C) 2007, 2008 Canonical Ltd
|
2347.1.1
by John Arbash Meinel
(John Whitley) Print out the location of ~/.bazaar as part of 'bzr --version' |
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 |
||
2324.3.2
by John Whitley
Added blackbox test for bzr version. |
17 |
"""Black-box tests for bzr version."""
|
18 |
||
3193.6.7
by Alexander Belchenko
If BZR_HOME environment variable is defined then default location for .bzr.log trace file is ``$BZR_HOME/.bzr.log`` (required for proper testing BZR_LOG environment variable). |
19 |
import os |
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
20 |
import sys |
21 |
||
2324.3.2
by John Whitley
Added blackbox test for bzr version. |
22 |
import bzrlib |
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
23 |
from bzrlib import osutils, trace |
24 |
from bzrlib.tests import ( |
|
25 |
probe_unicode_in_user_encoding, |
|
26 |
TestCase, |
|
27 |
TestCaseInTempDir, |
|
28 |
TestSkipped, |
|
29 |
)
|
|
2785.1.1
by bialix at ukr
test cases for #131100 |
30 |
|
31 |
||
32 |
class TestVersion(TestCase): |
|
2347.1.1
by John Arbash Meinel
(John Whitley) Print out the location of ~/.bazaar as part of 'bzr --version' |
33 |
|
2324.3.2
by John Whitley
Added blackbox test for bzr version. |
34 |
def test_version(self): |
35 |
out = self.run_bzr("version")[0] |
|
36 |
self.assertTrue(len(out) > 0) |
|
3287.11.1
by Martin Pool
Don't require that the version number occur only once in --version |
37 |
# must occur once; could be more if it matches a file path
|
3287.11.2
by Martin Pool
Better test for --version contents |
38 |
first = out.splitlines()[0] |
39 |
self.assertEqualDiff(first, |
|
40 |
"Bazaar (bzr) %s" % bzrlib.__version__) |
|
2606.1.3
by Martin Pool
Update tests for new version display |
41 |
self.assertContainsRe(out, r"(?m)^ Python interpreter:") |
42 |
self.assertContainsRe(out, r"(?m)^ Python standard library:") |
|
43 |
self.assertContainsRe(out, r"(?m)^ bzrlib:") |
|
44 |
self.assertContainsRe(out, r"(?m)^ Bazaar configuration:") |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
45 |
self.assertContainsRe(out, r'(?m)^ Bazaar log file:.*\.bzr\.log') |
2785.1.1
by bialix at ukr
test cases for #131100 |
46 |
|
3346.2.1
by Martin Pool
Add version --short option |
47 |
def test_version_short(self): |
48 |
out = self.run_bzr(["version", "--short"])[0] |
|
3346.2.9
by Martin Pool
Correct short version test |
49 |
self.assertEqualDiff(out, bzrlib.version_string + '\n') |
3346.2.1
by Martin Pool
Add version --short option |
50 |
|
2785.1.1
by bialix at ukr
test cases for #131100 |
51 |
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
52 |
class TestVersionUnicodeOutput(TestCaseInTempDir): |
2785.1.1
by bialix at ukr
test cases for #131100 |
53 |
|
54 |
def _check(self, args): |
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
55 |
# Even though trace._bzr_log_filename variable
|
56 |
# is used only to keep actual log filename
|
|
57 |
# and changing this variable in selftest
|
|
58 |
# don't change main .bzr.log location,
|
|
59 |
# and therefore pretty safe,
|
|
60 |
# but we run these tests in separate temp dir
|
|
61 |
# with relative unicoded path
|
|
2785.1.1
by bialix at ukr
test cases for #131100 |
62 |
old_trace_file = trace._bzr_log_filename |
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
63 |
trace._bzr_log_filename = u'\u1234/.bzr.log' |
2785.1.1
by bialix at ukr
test cases for #131100 |
64 |
try: |
65 |
out = self.run_bzr(args)[0] |
|
66 |
finally: |
|
67 |
trace._bzr_log_filename = old_trace_file |
|
68 |
self.assertTrue(len(out) > 0) |
|
69 |
self.assertContainsRe(out, r'(?m)^ Bazaar log file:.*bzr\.log') |
|
70 |
||
71 |
def test_command(self): |
|
72 |
self._check("version") |
|
73 |
||
74 |
def test_flag(self): |
|
75 |
self._check("--version") |
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
76 |
|
77 |
def test_unicode_bzr_home(self): |
|
78 |
uni_val, str_val = probe_unicode_in_user_encoding() |
|
79 |
if uni_val is None: |
|
80 |
raise TestSkipped('Cannot find a unicode character that works in' |
|
81 |
' encoding %s' % (bzrlib.user_encoding,)) |
|
82 |
||
83 |
osutils.set_or_unset_env('BZR_HOME', str_val) |
|
84 |
out = self.run_bzr("version")[0] |
|
85 |
self.assertTrue(len(out) > 0) |
|
86 |
self.assertContainsRe(out, r"(?m)^ Bazaar configuration: " + str_val) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
87 |
|
88 |
||
89 |
class TestVersionBzrLogLocation(TestCaseInTempDir): |
|
90 |
||
91 |
def test_simple(self): |
|
92 |
bzr_log = 'my.bzr.log' |
|
93 |
osutils.set_or_unset_env('BZR_LOG', bzr_log) |
|
3193.6.7
by Alexander Belchenko
If BZR_HOME environment variable is defined then default location for .bzr.log trace file is ``$BZR_HOME/.bzr.log`` (required for proper testing BZR_LOG environment variable). |
94 |
default_log = os.path.join(os.environ['BZR_HOME'], '.bzr.log') |
95 |
self.failIfExists([default_log, bzr_log]) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
96 |
out = self.run_bzr_subprocess('version')[0] |
97 |
self.assertTrue(len(out) > 0) |
|
98 |
self.assertContainsRe(out, r"(?m)^ Bazaar log file: " + bzr_log) |
|
3193.6.7
by Alexander Belchenko
If BZR_HOME environment variable is defined then default location for .bzr.log trace file is ``$BZR_HOME/.bzr.log`` (required for proper testing BZR_LOG environment variable). |
99 |
self.failIfExists(default_log) |
100 |
self.failUnlessExists(bzr_log) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
101 |
|
102 |
def test_dev_null(self): |
|
103 |
if sys.platform == 'win32': |
|
104 |
bzr_log = 'NUL' |
|
105 |
else: |
|
106 |
bzr_log = '/dev/null' |
|
107 |
osutils.set_or_unset_env('BZR_LOG', bzr_log) |
|
3193.6.7
by Alexander Belchenko
If BZR_HOME environment variable is defined then default location for .bzr.log trace file is ``$BZR_HOME/.bzr.log`` (required for proper testing BZR_LOG environment variable). |
108 |
default_log = os.path.join(os.environ['BZR_HOME'], '.bzr.log') |
109 |
self.failIfExists(default_log) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
110 |
out = self.run_bzr_subprocess('version')[0] |
111 |
self.assertTrue(len(out) > 0) |
|
112 |
self.assertContainsRe(out, r"(?m)^ Bazaar log file: " + bzr_log) |
|
3193.6.7
by Alexander Belchenko
If BZR_HOME environment variable is defined then default location for .bzr.log trace file is ``$BZR_HOME/.bzr.log`` (required for proper testing BZR_LOG environment variable). |
113 |
self.failIfExists(default_log) |