19
19
For interface contract tests, see tests/per_control_dir.
28
from .scenarios import load_tests_apply_scenarios
28
from bzrlib.tests.scenarios import load_tests_apply_scenarios
31
31
load_tests = load_tests_apply_scenarios
34
class TestErrors(tests.TestCase):
36
def test_must_have_working_tree(self):
37
err = controldir.MustHaveWorkingTree('foo', 'bar')
38
self.assertEqual(str(err), "Branching 'bar'(foo) must create a"
42
34
class SampleComponentFormat(controldir.ControlComponentFormat):
44
36
def get_format_string(self):
45
return b"Example component format."
37
return "Example component format."
48
40
class SampleExtraComponentFormat(controldir.ControlComponentFormat):
58
50
def test_register_unregister_format(self):
59
51
format = SampleComponentFormat()
60
52
self.registry.register(format)
61
self.assertEqual(format,
62
self.registry.get(b"Example component format."))
53
self.assertEquals(format,
54
self.registry.get("Example component format."))
63
55
self.registry.remove(format)
64
56
self.assertRaises(KeyError, self.registry.get,
65
b"Example component format.")
57
"Example component format.")
67
59
def test_get_all(self):
68
60
format = SampleComponentFormat()
69
self.assertEqual([], self.registry._get_all())
61
self.assertEquals([], self.registry._get_all())
70
62
self.registry.register(format)
71
self.assertEqual([format], self.registry._get_all())
63
self.assertEquals([format], self.registry._get_all())
73
65
def test_get_all_modules(self):
74
66
format = SampleComponentFormat()
75
self.assertEqual(set(), self.registry._get_all_modules())
67
self.assertEquals(set(), self.registry._get_all_modules())
76
68
self.registry.register(format)
78
{"breezy.tests.test_controldir"},
70
set(["bzrlib.tests.test_controldir"]),
79
71
self.registry._get_all_modules())
81
73
def test_register_extra(self):
82
74
format = SampleExtraComponentFormat()
83
self.assertEqual([], self.registry._get_all())
75
self.assertEquals([], self.registry._get_all())
84
76
self.registry.register_extra(format)
85
self.assertEqual([format], self.registry._get_all())
77
self.assertEquals([format], self.registry._get_all())
87
79
def test_register_extra_lazy(self):
88
self.assertEqual([], self.registry._get_all())
89
self.registry.register_extra_lazy("breezy.tests.test_controldir",
80
self.assertEquals([], self.registry._get_all())
81
self.registry.register_extra_lazy("bzrlib.tests.test_controldir",
90
82
"SampleExtraComponentFormat")
91
83
formats = self.registry._get_all()
92
self.assertEqual(1, len(formats))
84
self.assertEquals(1, len(formats))
93
85
self.assertIsInstance(formats[0], SampleExtraComponentFormat)
88
class TestControlDirFormatDeprecated(tests.TestCaseWithTransport):
89
"""Tests for removed registration method in the ControlDirFormat facility."""
91
def test_register_format(self):
92
self.assertRaises(errors.BzrError,
93
controldir.ControlDirFormat.register_format, object())
96
96
class TestProber(tests.TestCaseWithTransport):
97
97
"""Per-prober tests."""
214
214
allow_unsupported=True)
216
216
def test_recommend_upgrade_current_format(self):
217
ui.ui_factory = tests.TestUIFactory()
217
stderr = tests.StringIOWrapper()
218
ui.ui_factory = tests.TestUIFactory(stderr=stderr)
218
219
format = controldir.ControlComponentFormat()
219
220
format.check_support_status(allow_unsupported=False,
220
221
recommend_upgrade=True)
221
self.assertEqual("", ui.ui_factory.stderr.getvalue())
222
self.assertEquals("", stderr.getvalue())
223
224
def test_recommend_upgrade_old_format(self):
224
ui.ui_factory = tests.TestUIFactory()
225
stderr = tests.StringIOWrapper()
226
ui.ui_factory = tests.TestUIFactory(stderr=stderr)
225
227
format = OldControlComponentFormat()
226
228
format.check_support_status(allow_unsupported=False,
227
229
recommend_upgrade=False)
228
self.assertEqual("", ui.ui_factory.stderr.getvalue())
230
self.assertEquals("", stderr.getvalue())
229
231
format.check_support_status(allow_unsupported=False,
230
232
recommend_upgrade=True, basedir='apath')
232
234
'An old format that is slow is deprecated and a better format '
233
235
'is available.\nIt is recommended that you upgrade by running '
234
'the command\n brz upgrade apath\n',
235
ui.ui_factory.stderr.getvalue())
238
class IsControlFilenameTest(tests.TestCase):
240
def test_is_bzrdir(self):
241
self.assertTrue(controldir.is_control_filename('.bzr'))
243
def test_is_not_bzrdir(self):
244
self.assertFalse(controldir.is_control_filename('.git'))
245
self.assertFalse(controldir.is_control_filename('bla'))
236
'the command\n bzr upgrade apath\n',