~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_selftest.py

  • Committer: John Ferlito
  • Date: 2009-09-02 04:31:45 UTC
  • mto: (4665.7.1 serve-init)
  • mto: This revision was merged to the branch mainline in revision 4913.
  • Revision ID: johnf@inodes.org-20090902043145-gxdsfw03ilcwbyn5
Add a debian init script for bzr --serve

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2007 Canonical Ltd
2
2
#
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
16
16
 
17
17
"""UI tests for the test framework."""
18
18
 
19
 
import os
20
 
 
 
19
import bzrlib.transport
21
20
from bzrlib import (
 
21
    benchmarks,
22
22
    tests,
23
23
    )
 
24
from bzrlib.errors import ParamikoNotPresent
24
25
from bzrlib.tests import (
25
 
    features,
26
 
    )
27
 
from bzrlib.transport import memory
 
26
                          SubUnitFeature,
 
27
                          TestCase,
 
28
                          TestCaseInTempDir,
 
29
                          TestSkipped,
 
30
                          )
 
31
 
28
32
 
29
33
class SelfTestPatch:
30
34
 
47
51
            tests.selftest = original_selftest
48
52
 
49
53
 
50
 
class TestOptions(tests.TestCase, SelfTestPatch):
 
54
class TestOptionsWritingToDisk(TestCaseInTempDir, SelfTestPatch):
 
55
 
 
56
    def test_benchmark_runs_benchmark_tests(self):
 
57
        """selftest --benchmark should change the suite factory."""
 
58
        params = self.get_params_passed_to_core('selftest --benchmark')
 
59
        self.assertEqual(benchmarks.test_suite,
 
60
            params[1]['test_suite_factory'])
 
61
        self.assertNotEqual(None, params[1]['bench_history'])
 
62
        benchfile = open(".perf_history", "rt")
 
63
        try:
 
64
            lines = benchfile.readlines()
 
65
        finally:
 
66
            benchfile.close()
 
67
        # Because we don't run the actual test code no output is made to the
 
68
        # file.
 
69
        self.assertEqual(0, len(lines))
 
70
 
 
71
 
 
72
class TestOptions(TestCase, SelfTestPatch):
51
73
 
52
74
    def test_load_list(self):
53
75
        params = self.get_params_passed_to_core('selftest --load-list foo')
56
78
    def test_transport_set_to_sftp(self):
57
79
        # Test that we can pass a transport to the selftest core - sftp
58
80
        # version.
59
 
        self.requireFeature(features.paramiko)
60
 
        from bzrlib.tests import stub_sftp
 
81
        try:
 
82
            import bzrlib.transport.sftp
 
83
        except ParamikoNotPresent:
 
84
            raise TestSkipped("Paramiko not present")
61
85
        params = self.get_params_passed_to_core('selftest --transport=sftp')
62
 
        self.assertEqual(stub_sftp.SFTPAbsoluteServer,
 
86
        self.assertEqual(bzrlib.transport.sftp.SFTPAbsoluteServer,
63
87
            params[1]["transport"])
64
88
 
65
89
    def test_transport_set_to_memory(self):
66
90
        # Test that we can pass a transport to the selftest core - memory
67
91
        # version.
 
92
        import bzrlib.transport.memory
68
93
        params = self.get_params_passed_to_core('selftest --transport=memory')
69
 
        self.assertEqual(memory.MemoryServer, params[1]["transport"])
 
94
        self.assertEqual(bzrlib.transport.memory.MemoryServer,
 
95
            params[1]["transport"])
70
96
 
71
97
    def test_parameters_passed_to_core(self):
72
98
        params = self.get_params_passed_to_core('selftest --list-only')
90
116
        self.assertEqual(['foo', 'bar'], params[1]['starting_with'])
91
117
 
92
118
    def test_subunit(self):
93
 
        self.requireFeature(features.subunit)
 
119
        self.requireFeature(SubUnitFeature)
94
120
        params = self.get_params_passed_to_core('selftest --subunit')
95
121
        self.assertEqual(tests.SubUnitBzrRunner, params[1]['runner_class'])
96
122
 
150
176
    def test_lsprof_tests(self):
151
177
        params = self.get_params_passed_to_core('selftest --lsprof-tests')
152
178
        self.assertEqual(True, params[1]["lsprof_tests"])
153
 
 
154
 
    def test_parallel_fork_unsupported(self):
155
 
        if getattr(os, "fork", None) is not None:
156
 
            self.addCleanup(setattr, os, "fork", os.fork)
157
 
            del os.fork
158
 
        out, err = self.run_bzr(["selftest", "--parallel=fork", "-s", "bt.x"],
159
 
            retcode=3)
160
 
        self.assertIn("platform does not support fork", err)
161
 
        self.assertFalse(out)