44
44
class TestOptions(TestCase):
48
46
def test_transport_set_to_sftp(self):
49
# test the --transport option has taken effect from within the
47
# Test that we can pass a transport to the selftest core - sftp
52
50
import bzrlib.transport.sftp
53
51
except ParamikoNotPresent:
54
52
raise TestSkipped("Paramiko not present")
55
if TestOptions.current_test != "test_transport_set_to_sftp":
53
params = self.get_params_passed_to_core('selftest --transport=sftp')
57
54
self.assertEqual(bzrlib.transport.sftp.SFTPAbsoluteServer,
58
bzrlib.tests.default_transport)
55
params[1]["transport"])
60
57
def test_transport_set_to_memory(self):
61
# test the --transport option has taken effect from within the
58
# Test that we can pass a transport to the selftest core - memory
63
60
import bzrlib.transport.memory
64
if TestOptions.current_test != "test_transport_set_to_memory":
61
params = self.get_params_passed_to_core('selftest --transport=memory')
66
62
self.assertEqual(bzrlib.transport.memory.MemoryServer,
67
bzrlib.tests.default_transport)
69
def test_transport(self):
70
# test that --transport=sftp works
72
import bzrlib.transport.sftp
73
except ParamikoNotPresent:
74
raise TestSkipped("Paramiko not present")
75
old_transport = bzrlib.tests.default_transport
76
old_root = TestCaseWithMemoryTransport.TEST_ROOT
77
TestCaseWithMemoryTransport.TEST_ROOT = None
79
TestOptions.current_test = "test_transport_set_to_sftp"
80
stdout = self.run_bzr(
81
'selftest --transport=sftp test_transport_set_to_sftp')[0]
82
self.assertContainsRe(stdout, 'Ran 1 test')
83
self.assertEqual(old_transport, bzrlib.tests.default_transport)
85
TestOptions.current_test = "test_transport_set_to_memory"
86
stdout = self.run_bzr(
87
'selftest --transport=memory test_transport_set_to_memory')[0]
88
self.assertContainsRe(stdout, 'Ran 1 test')
89
self.assertEqual(old_transport, bzrlib.tests.default_transport)
63
params[1]["transport"])
65
def get_params_passed_to_core(self, cmdline):
67
def selftest(*args, **kwargs):
68
"""Capture the arguments selftest was run with."""
69
params.append((args, kwargs))
71
# Yes this prevents using threads to run the test suite in parallel,
72
# however we don't have a clean dependency injector for commands,
73
# and even if we did - we'd still be testing that the glue is wired
74
# up correctly. XXX: TODO: Solve this testing problem.
75
original_selftest = tests.selftest
76
tests.selftest = selftest
91
bzrlib.tests.default_transport = old_transport
92
TestOptions.current_test = None
93
TestCaseWithMemoryTransport.TEST_ROOT = old_root
81
tests.selftest = original_selftest
83
def test_parameters_passed_to_core(self):
84
params = self.get_params_passed_to_core('selftest --list-only')
85
self.assertTrue("list_only" in params[1])
86
params = self.get_params_passed_to_core('selftest --list-only selftest')
87
self.assertTrue("list_only" in params[1])
88
params = self.get_params_passed_to_core(['selftest', '--list-only',
89
'--exclude', 'selftest'])
90
self.assertTrue("list_only" in params[1])
91
params = self.get_params_passed_to_core(['selftest', '--list-only',
92
'selftest', '--randomize', 'now'])
93
self.assertSubset(["list_only", "random_seed"], params[1])
95
95
def test_subunit(self):
96
96
"""Passing --subunit results in subunit output."""
538
538
tests.selftest = original_selftest
540
def test_parameters_passed_to_core(self):
542
def selftest(*args, **kwargs):
543
"""Capture the arguments selftest was run with."""
544
params.append((args, kwargs))
546
# Yes this prevents using threads to run the test suite in parallel,
547
# however we don't have a clean dependency injector for commands,
548
# and even if we did - we'd still be testing that the glue is wired
549
# up correctly. XXX: TODO: Solve this testing problem.
550
original_selftest = tests.selftest
551
tests.selftest = selftest
553
self.run_bzr('selftest --list-only')
554
self.run_bzr('selftest --list-only selftest')
555
self.run_bzr(['selftest', '--list-only', '--exclude', 'selftest'])
556
self.run_bzr(['selftest', '--list-only', 'selftest',
557
'--randomize', 'now'])
558
# list_only should have been passed in each invocation.
559
self.assertTrue("list_only" in params[0][1])
560
self.assertTrue("list_only" in params[1][1])
561
self.assertTrue("list_only" in params[2][1])
562
self.assertSubset(["list_only", "random_seed"], params[2][1])
564
tests.selftest = original_selftest
567
541
class TestSelftestWithIdList(TestCaseInTempDir):