142
142
'BZREMAIL': None, # may still be present in the environment
143
143
'EMAIL': 'jrandom@example.com', # set EMAIL as bzr does not guess
144
144
'BZR_PROGRESS_BAR': None,
145
# This should trap leaks to ~/.bzr.log. This occurs when tests use TestCase
146
# as a base class instead of TestCaseInTempDir. Tests inheriting from
147
# TestCase should not use disk resources, BZR_LOG is one.
148
'BZR_LOG': '/you-should-use-TestCaseInTempDir-if-you-need-a-log-file',
146
149
'BZR_PLUGIN_PATH': None,
147
150
'BZR_DISABLE_PLUGINS': None,
148
151
'BZR_PLUGINS_AT': None,
929
932
The method is really a factory and users are expected to use it as such.
932
935
kwargs['setUp'] = isolated_doctest_setUp
933
936
kwargs['tearDown'] = isolated_doctest_tearDown
934
937
return doctest.DocTestSuite(*args, **kwargs)
1704
1707
def _finishLogFile(self):
1705
1708
"""Finished with the log file.
1707
Close the file and delete it, unless setKeepLogfile was called.
1710
Close the file and delete it.
1709
1712
if trace._trace_file:
1710
1713
# flush the log file, to get all content
2325
2328
class TestCaseWithMemoryTransport(TestCase):
2326
2329
"""Common test class for tests that do not need disk resources.
2328
Tests that need disk resources should derive from TestCaseWithTransport.
2331
Tests that need disk resources should derive from TestCaseInTempDir
2332
orTestCaseWithTransport.
2330
2334
TestCaseWithMemoryTransport sets the TEST_ROOT variable for all bzr tests.
2332
For TestCaseWithMemoryTransport the test_home_dir is set to the name of
2336
For TestCaseWithMemoryTransport the ``test_home_dir`` is set to the name of
2333
2337
a directory which does not exist. This serves to help ensure test isolation
2334
is preserved. test_dir is set to the TEST_ROOT, as is cwd, because they
2335
must exist. However, TestCaseWithMemoryTransport does not offer local
2336
file defaults for the transport in tests, nor does it obey the command line
2338
is preserved. ``test_dir`` is set to the TEST_ROOT, as is cwd, because they
2339
must exist. However, TestCaseWithMemoryTransport does not offer local file
2340
defaults for the transport in tests, nor does it obey the command line
2337
2341
override, so tests that accidentally write to the common directory should
2340
:cvar TEST_ROOT: Directory containing all temporary directories, plus
2341
a .bzr directory that stops us ascending higher into the filesystem.
2344
:cvar TEST_ROOT: Directory containing all temporary directories, plus a
2345
``.bzr`` directory that stops us ascending higher into the filesystem.
2344
2348
TEST_ROOT = None
2669
2673
OVERRIDE_PYTHON = 'python'
2676
super(TestCaseInTempDir, self).setUp()
2677
# Remove the protection set in isolated_environ, we have a proper
2678
# access to disk resources now.
2679
self.overrideEnv('BZR_LOG', None)
2671
2681
def check_file_contents(self, filename, expect):
2672
2682
self.log("check contents of file %s" % filename)
2673
2683
f = file(filename)