1
# Copyright (C) 2006, 2009, 2010 Canonical Ltd
1
# Copyright (C) 2006, 2009, 2010, 2011 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
"""Tests for versioning of bzrlib."""
17
"""Tests for versioning of breezy."""
19
from cStringIO import StringIO
23
from bzrlib import version, workingtree
24
from bzrlib.tests import TestCase, TestSkipped
26
class TestBzrlibVersioning(TestCase):
28
def test_get_bzr_source_tree(self):
27
from ..sixish import (
31
from .scenarios import load_tests_apply_scenarios
34
load_tests = load_tests_apply_scenarios
37
class TestBzrlibVersioning(tests.TestCase):
39
def test_get_brz_source_tree(self):
29
40
"""Get tree for bzr source, if any."""
30
41
self.permit_source_tree_branch_repo()
31
42
# We don't know if these tests are being run from a checkout or branch
32
43
# of bzr, from an installed copy, or from source unpacked from a
33
44
# tarball. We don't construct a branch just for testing this, so we
34
45
# just assert that it must either return None or the tree.
35
src_tree = version._get_bzr_source_tree()
46
src_tree = version._get_brz_source_tree()
36
47
if src_tree is None:
37
raise TestSkipped("bzr tests aren't run from a bzr working tree")
48
raise tests.TestSkipped(
49
"bzr tests aren't run from a bzr working tree")
39
51
# ensure that what we got was in fact a working tree instance.
40
52
self.assertIsInstance(src_tree, workingtree.WorkingTree)
43
55
self.permit_source_tree_branch_repo()
45
57
version.show_version(show_config=False, show_copyright=False,
47
59
out = sio.getvalue()
48
60
m = re.search(r"Python interpreter: (.*) [0-9]", out)
49
61
self.assertIsNot(m, None)
50
self.failUnlessExists(m.group(1))
62
self.assertPathExists(m.group(1))
65
class TestPlatformUse(tests.TestCase):
67
scenarios = [('ascii', dict(_platform='test-platform')),
68
('unicode', dict(_platform='Schr\xc3\xb6dinger'))]
71
super(TestPlatformUse, self).setUp()
72
self.permit_source_tree_branch_repo()
74
def test_platform(self):
75
out = self.make_utf8_encoded_stringio()
76
self.overrideAttr(platform, 'platform', lambda **
77
kwargs: self._platform)
78
version.show_version(show_config=False, show_copyright=False,
80
expected = r'(?m)^ Platform: %s' % self._platform
82
expected = expected.encode('utf-8')
83
self.assertContainsRe(out.getvalue(), expected)