bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
|
6614.1.1
by Vincent Ladeuil
Fix assert_ being deprecated by using assertTrue. |
1 |
# Copyright (C) 2007-2012, 2016 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
|
|
|
4183.7.1
by Sabin Iacob
update FSF mailing address |
15 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
2347.1.1
by John Arbash Meinel
(John Whitley) Print out the location of ~/.bazaar as part of 'bzr --version' |
16 |
|
|
6622.1.29
by Jelmer Vernooij
Fix some more tests. |
17 |
"""Black-box tests for brz version."""
|
|
2324.3.2
by John Whitley
Added blackbox test 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 |
||
|
6622.1.34
by Jelmer Vernooij
Rename brzlib => breezy. |
22 |
import breezy |
23 |
from breezy import osutils, trace |
|
|
7045.4.30
by Jelmer Vernooij
Fix some more tests. |
24 |
from breezy.sixish import PY3 |
|
6622.1.34
by Jelmer Vernooij
Rename brzlib => breezy. |
25 |
from breezy.tests import ( |
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
26 |
probe_unicode_in_user_encoding, |
27 |
TestCase, |
|
28 |
TestCaseInTempDir, |
|
29 |
TestSkipped, |
|
30 |
)
|
|
|
2785.1.1
by bialix at ukr
test cases for #131100 |
31 |
|
32 |
||
33 |
class TestVersion(TestCase): |
|
|
2347.1.1
by John Arbash Meinel
(John Whitley) Print out the location of ~/.bazaar as part of 'bzr --version' |
34 |
|
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
35 |
def test_main_version(self): |
36 |
"""Check output from version command and master option is reasonable""" |
|
37 |
# output is intentionally passed through to stdout so that we
|
|
38 |
# can see the version being tested
|
|
39 |
self.permit_source_tree_branch_repo() |
|
40 |
output = self.run_bzr('version')[0] |
|
|
6622.1.29
by Jelmer Vernooij
Fix some more tests. |
41 |
self.log('brz version output:') |
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
42 |
self.log(output) |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
43 |
self.assertTrue(output.startswith('Breezy (brz) ')) |
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
44 |
self.assertNotEqual(output.index('Canonical'), -1) |
45 |
# make sure --version is consistent
|
|
46 |
tmp_output = self.run_bzr('--version')[0] |
|
|
6614.1.3
by Vincent Ladeuil
Fix assertEquals being deprecated by using assertEqual. |
47 |
self.assertEqual(output, tmp_output) |
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
48 |
|
|
2324.3.2
by John Whitley
Added blackbox test for bzr version. |
49 |
def test_version(self): |
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
50 |
self.permit_source_tree_branch_repo() |
|
2324.3.2
by John Whitley
Added blackbox test for bzr version. |
51 |
out = self.run_bzr("version")[0] |
52 |
self.assertTrue(len(out) > 0) |
|
|
3400.1.1
by Martin Pool
Fix up stray comment |
53 |
self.assertEqualDiff(out.splitlines()[0], |
|
6622.1.34
by Jelmer Vernooij
Rename brzlib => breezy. |
54 |
"Breezy (brz) %s" % breezy.__version__) |
|
2606.1.3
by Martin Pool
Update tests for new version display |
55 |
self.assertContainsRe(out, r"(?m)^ Python interpreter:") |
56 |
self.assertContainsRe(out, r"(?m)^ Python standard library:") |
|
|
6622.1.34
by Jelmer Vernooij
Rename brzlib => breezy. |
57 |
self.assertContainsRe(out, r"(?m)^ breezy:") |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
58 |
self.assertContainsRe(out, r"(?m)^ Breezy configuration:") |
59 |
self.assertContainsRe(out, r'(?m)^ Breezy log file:.*\.brz\.log') |
|
|
2785.1.1
by bialix at ukr
test cases for #131100 |
60 |
|
|
3346.2.1
by Martin Pool
Add version --short option |
61 |
def test_version_short(self): |
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
62 |
self.permit_source_tree_branch_repo() |
|
3346.2.1
by Martin Pool
Add version --short option |
63 |
out = self.run_bzr(["version", "--short"])[0] |
|
6622.1.34
by Jelmer Vernooij
Rename brzlib => breezy. |
64 |
self.assertEqualDiff(out, breezy.version_string + '\n') |
|
3346.2.1
by Martin Pool
Add version --short option |
65 |
|
|
2785.1.1
by bialix at ukr
test cases for #131100 |
66 |
|
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
67 |
class TestVersionUnicodeOutput(TestCaseInTempDir): |
|
2785.1.1
by bialix at ukr
test cases for #131100 |
68 |
|
69 |
def _check(self, args): |
|
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
70 |
self.permit_source_tree_branch_repo() |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
71 |
# Even though trace._brz_log_filename variable
|
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
72 |
# is used only to keep actual log filename
|
73 |
# and changing this variable in selftest
|
|
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
74 |
# don't change main .brz.log location,
|
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
75 |
# and therefore pretty safe,
|
76 |
# but we run these tests in separate temp dir
|
|
77 |
# with relative unicoded path
|
|
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
78 |
old_trace_file = trace._brz_log_filename |
79 |
trace._brz_log_filename = u'\u1234/.brz.log' |
|
|
2785.1.1
by bialix at ukr
test cases for #131100 |
80 |
try: |
81 |
out = self.run_bzr(args)[0] |
|
82 |
finally: |
|
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
83 |
trace._brz_log_filename = old_trace_file |
|
2785.1.1
by bialix at ukr
test cases for #131100 |
84 |
self.assertTrue(len(out) > 0) |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
85 |
self.assertContainsRe(out, r'(?m)^ Breezy log file:.*brz\.log') |
|
2785.1.1
by bialix at ukr
test cases for #131100 |
86 |
|
87 |
def test_command(self): |
|
88 |
self._check("version") |
|
89 |
||
90 |
def test_flag(self): |
|
91 |
self._check("--version") |
|
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
92 |
|
93 |
def test_unicode_bzr_home(self): |
|
94 |
uni_val, str_val = probe_unicode_in_user_encoding() |
|
95 |
if uni_val is None: |
|
96 |
raise TestSkipped('Cannot find a unicode character that works in' |
|
|
3224.5.4
by Andrew Bennetts
Fix test suite, mainly weeding out uses of bzrlib.user_encoding. |
97 |
' encoding %s' % (osutils.get_user_encoding(),)) |
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
98 |
|
|
7045.4.30
by Jelmer Vernooij
Fix some more tests. |
99 |
if PY3: |
100 |
self.overrideEnv('BRZ_HOME', uni_val) |
|
101 |
else: |
|
102 |
self.overrideEnv('BRZ_HOME', str_val) |
|
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
103 |
self.permit_source_tree_branch_repo() |
|
7065.3.6
by Jelmer Vernooij
Fix some more tests. |
104 |
out = self.run_bzr_raw("version")[0] |
|
2785.1.5
by Alexander Belchenko
support for non-ascii BZR_HOME in show_version() |
105 |
self.assertTrue(len(out) > 0) |
|
7065.3.6
by Jelmer Vernooij
Fix some more tests. |
106 |
self.assertContainsRe(out, br"(?m)^ Breezy configuration: " + str_val) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
107 |
|
108 |
||
109 |
class TestVersionBzrLogLocation(TestCaseInTempDir): |
|
110 |
||
111 |
def test_simple(self): |
|
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
112 |
brz_log = 'my.brz.log' |
113 |
self.overrideEnv('BRZ_LOG', brz_log) |
|
114 |
default_log = os.path.join(os.environ['BRZ_HOME'], '.brz.log') |
|
115 |
self.assertPathDoesNotExist([default_log, brz_log]) |
|
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
116 |
out = self.run_bzr_subprocess('version')[0] |
117 |
self.assertTrue(len(out) > 0) |
|
|
7065.3.6
by Jelmer Vernooij
Fix some more tests. |
118 |
self.assertContainsRe(out, br"(?m)^ Breezy log file: " + brz_log.encode('ascii')) |
|
5784.1.3
by Martin Pool
Switch away from using failUnlessExists and failIfExists |
119 |
self.assertPathDoesNotExist(default_log) |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
120 |
self.assertPathExists(brz_log) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
121 |
|
122 |
def test_dev_null(self): |
|
|
4691.2.1
by Robert Collins
Add stronger test isolation by interception BzrDir.open and checking the thing being opened is known to the test suite. |
123 |
# This test uses a subprocess to cause the log opening logic to
|
124 |
# execute. It would be better to just execute that logic directly.
|
|
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
125 |
if sys.platform == 'win32': |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
126 |
brz_log = 'NUL' |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
127 |
else: |
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
128 |
brz_log = '/dev/null' |
129 |
self.overrideEnv('BRZ_LOG', brz_log) |
|
130 |
default_log = os.path.join(os.environ['BRZ_HOME'], '.brz.log') |
|
|
5784.1.3
by Martin Pool
Switch away from using failUnlessExists and failIfExists |
131 |
self.assertPathDoesNotExist(default_log) |
|
3193.6.4
by Alexander Belchenko
blackbox tests for `bzr version` command output to check $BZR_LOG effect |
132 |
out = self.run_bzr_subprocess('version')[0] |
133 |
self.assertTrue(len(out) > 0) |
|
|
7065.3.6
by Jelmer Vernooij
Fix some more tests. |
134 |
self.assertContainsRe(out, br"(?m)^ Breezy log file: " + brz_log.encode('ascii')) |
|
5784.1.3
by Martin Pool
Switch away from using failUnlessExists and failIfExists |
135 |
self.assertPathDoesNotExist(default_log) |
|
6437.26.3
by Martin Packman
Add blackbox test for displaying non-ascii log in bzr version |
136 |
|
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
137 |
def test_unicode_brz_log(self): |
|
6437.26.3
by Martin Packman
Add blackbox test for displaying non-ascii log in bzr version |
138 |
uni_val = u"\xa7" |
139 |
enc = osutils.get_user_encoding() |
|
140 |
try: |
|
141 |
str_val = uni_val.encode(enc) |
|
142 |
except UnicodeEncodeError: |
|
|
6622.4.1
by Martin
Use skipTest rather than deprecated skip method |
143 |
self.skipTest( |
144 |
"Test string %r unrepresentable in user encoding %s" % ( |
|
|
6437.26.3
by Martin Packman
Add blackbox test for displaying non-ascii log in bzr version |
145 |
uni_val, enc)) |
|
6622.1.28
by Jelmer Vernooij
More renames; commands in output, environment variables. |
146 |
self.overrideEnv('BRZ_HOME', self.test_base_dir) |
|
7065.3.6
by Jelmer Vernooij
Fix some more tests. |
147 |
brz_log = os.path.join(self.test_base_dir, uni_val) |
148 |
if PY3: |
|
149 |
self.overrideEnv("BRZ_LOG", brz_log) |
|
150 |
else: |
|
151 |
self.overrideEnv("BRZ_LOG", brz_log.encode(enc)) |
|
|
6437.26.3
by Martin Packman
Add blackbox test for displaying non-ascii log in bzr version |
152 |
out, err = self.run_bzr_subprocess("version") |
153 |
uni_out = out.decode(enc) |
|
|
6622.1.33
by Jelmer Vernooij
Fix more tests (all?) |
154 |
self.assertContainsRe(uni_out, u"(?m)^ Breezy log file: .*/\xa7$") |