Rev 4286: Cleanup test imports and use features to better track skipped tests. in http://bazaar.launchpad.net/~vila/bzr/cleanup.various/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Sat Apr 11 17:06:55 BST 2009
At http://bazaar.launchpad.net/~vila/bzr/cleanup.various/
------------------------------------------------------------
revno: 4286
revision-id: v.ladeuil+lp at free.fr-20090411160653-eq1gfn41q3lzhmss
parent: pqm at pqm.ubuntu.com-20090411130119-4kn8b6070uyqg5xx
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: various
timestamp: Sat 2009-04-11 18:06:53 +0200
message:
Cleanup test imports and use features to better track skipped tests.
* bzrlib/tests/workingtree_implementations/__init__.py:
Fix imports. Delete obsolete comment.
* bzrlib/tests/tree_implementations/test_walkdirs.py:
(TestWalkdirs.get_all_subdirs_expected): Reduce duplication.
* bzrlib/tests/tree_implementations/test_test_trees.py:
Fix import.
* bzrlib/tests/tree_implementations/test_path_content_summary.py:
Fix imports.
(TestPathContentSummary.test_unicode_symlink_content_summary,
TestPathContentSummary.test_unicode_symlink_target_summary):Use
UnicodeFilenameFeature instead of try/except UnicodeError.
* bzrlib/tests/tree_implementations/test_inv.py:
Fix imports.
(TestInventoryWithSymlinks): Factor out test that requires
symlinks and use _test_needs_features.
(TestInventory.test_canonical_path,
TestInventory.test_canonical_path_dir,
TestInventory.test_canonical_path_root,
TestInventory.test_canonical_path_invalid_all,
TestInventory.test_canonical_invalid_child): Use assert(expected,
actual)
* bzrlib/tests/tree_implementations/test_get_symlink_target.py:
Fix imports.
(TestGetSymlinkTarget.test_get_unicode_symlink_target): Use
UnicodeFilenameFeature instead of try/except UnicodeError.
* bzrlib/tests/tree_implementations/__init__.py:
Fix imports.
(TestCaseWithTree.get_tree_with_subdirs_and_all_supported_content_types,
TestCaseWithTree._create_tree_with_utf8): Use
UnicodeFilenameFeature instead of try/except UnicodeError.
* bzrlib/tests/test_workingtree_4.py:
Fix too long lines.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_workingtree_4.py'
--- a/bzrlib/tests/test_workingtree_4.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/test_workingtree_4.py 2009-04-11 16:06:53 +0000
@@ -64,7 +64,8 @@
- when the WorkingTree is locked, LockDir can see that
"""
# this test could be factored into a subclass of tests common to both
- # format 3 and 4, but for now its not much of an issue as there is only one in common.
+ # format 3 and 4, but for now its not much of an issue as there is only
+ # one in common.
t = self.get_transport()
tree = self.make_workingtree()
self.assertIsDirectory('.bzr', t)
@@ -660,7 +661,8 @@
# Create a corrupted dirstate
tree.lock_write()
try:
- tree.commit('init') # We need a parent, or we always compare with NULL
+ # We need a parent, or we always compare with NULL
+ tree.commit('init')
state = tree.current_dirstate()
state._read_dirblocks_if_needed()
# Now add in an invalid entry, a rename with a dangling pointer
=== modified file 'bzrlib/tests/tree_implementations/__init__.py'
--- a/bzrlib/tests/tree_implementations/__init__.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/__init__.py 2009-04-11 16:06:53 +0000
@@ -32,13 +32,6 @@
tests,
transform,
)
-from bzrlib.transport import get_transport
-from bzrlib.tests import (
- multiply_tests,
- default_transport,
- TestCaseWithTransport,
- TestSkipped,
- )
from bzrlib.tests.bzrdir_implementations.test_bzrdir import TestCaseWithBzrDir
from bzrlib.tests.workingtree_implementations import (
make_scenarios as wt_make_scenarios,
@@ -97,7 +90,7 @@
return preview_tree
-class TestTreeImplementationSupport(TestCaseWithTransport):
+class TestTreeImplementationSupport(tests.TestCaseWithTransport):
def test_revision_tree_from_workingtree(self):
tree = self.make_branch_and_tree('.')
@@ -239,6 +232,7 @@
note that the order of the paths and fileids is deliberately
mismatched to ensure that the result order is path based.
"""
+ self.requireFeature(tests.UnicodeFilenameFeature)
tree = self.make_branch_and_tree('.')
paths = ['0file',
'1top-dir/',
@@ -253,11 +247,7 @@
'1file-in-1topdir',
'0dir-in-1topdir'
]
- try:
- self.build_tree(paths)
- except UnicodeError:
- raise TestSkipped(
- 'This platform does not support unicode file paths.')
+ self.build_tree(paths)
tree.add(paths, ids)
tt = transform.TreeTransform(tree)
if symlinks:
@@ -274,6 +264,7 @@
def _create_tree_with_utf8(self, tree):
"""Generate a tree with a utf8 revision and unicode paths."""
+ self.requireFeature(tests.UnicodeFilenameFeature)
# We avoid combining characters in file names here, normalization
# checks (as performed by some file systems (OSX) are outside the scope
# of these tests). We use the euro sign \N{Euro Sign} or \u20ac in
@@ -290,10 +281,7 @@
'ba\xe2\x82\xacr-id',
'ba\xe2\x82\xacz-id',
]
- try:
- self.build_tree(paths[1:])
- except UnicodeError:
- raise tests.TestSkipped('filesystem does not support unicode.')
+ self.build_tree(paths[1:])
if tree.get_root_id() is None:
# Some trees do not have a root yet.
tree.add(paths, file_ids)
@@ -333,7 +321,7 @@
for scenario in scenarios:
# for working tree format tests, preserve the tree
scenario[1]["_workingtree_to_test_tree"] = return_parameter
- # add RevisionTree scenario
+ # add RevisionTree scenario
workingtree_format = WorkingTreeFormat._default_format
scenarios.append((RevisionTree.__name__,
create_tree_scenario(transport_server, transport_readonly_server,
@@ -359,7 +347,6 @@
workingtree_format, converter):
"""Create a scenario for the specified converter
- :param name: The name to append to tests using this converter
:param converter: A function that converts a workingtree into the
desired format.
:param workingtree_format: The particular workingtree format to
@@ -367,8 +354,9 @@
:return: a (name, options) tuple, where options is a dict of values
to be used as members of the TestCase.
"""
- scenario_options = wt_make_scenario(transport_server, transport_readonly_server,
- workingtree_format)
+ scenario_options = wt_make_scenario(transport_server,
+ transport_readonly_server,
+ workingtree_format)
scenario_options["_workingtree_to_test_tree"] = converter
return scenario_options
@@ -389,10 +377,10 @@
'bzrlib.tests.tree_implementations.test_walkdirs',
])
scenarios = make_scenarios(
- default_transport,
+ tests.default_transport,
# None here will cause a readonly decorator to be created
# by the TestCaseWithTransport.get_readonly_transport method.
None,
WorkingTreeFormat._formats.values() + _legacy_formats)
# add the tests for the sub modules
- return multiply_tests(submod_tests, scenarios, standard_tests)
+ return tests.multiply_tests(submod_tests, scenarios, standard_tests)
=== modified file 'bzrlib/tests/tree_implementations/test_get_symlink_target.py'
--- a/bzrlib/tests/tree_implementations/test_get_symlink_target.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/test_get_symlink_target.py 2009-04-11 16:06:53 +0000
@@ -23,10 +23,10 @@
osutils,
tests,
)
-from bzrlib.tests.tree_implementations import TestCaseWithTree
-
-
-class TestGetSymlinkTarget(TestCaseWithTree):
+from bzrlib.tests import tree_implementations
+
+
+class TestGetSymlinkTarget(tree_implementations.TestCaseWithTree):
def get_tree_with_symlinks(self):
self.requireFeature(tests.SymlinkFeature)
@@ -49,14 +49,13 @@
def test_get_unicode_symlink_target(self):
self.requireFeature(tests.SymlinkFeature)
+ self.requireFeature(tests.UnicodeFilenameFeature)
tree = self.make_branch_and_tree('tree')
- try:
- os.symlink('target', u'tree/\u03b2_link'.encode(osutils._fs_enc))
- except UnicodeError:
- raise tests.TestSkipped(
- 'This platform does not support unicode file paths.')
+ target = u'targ\N{Euro Sign}t'
+ os.symlink(target, u'tree/\u03b2_link'.encode(osutils._fs_enc))
tree.add([u'\u03b2_link'], ['unicode-link-id'])
tree.lock_read()
self.addCleanup(tree.unlock)
- self.assertEqual('target', tree.get_symlink_target(u'unicode-link-id'))
+ actual = tree.get_symlink_target(u'unicode-link-id')
+ self.assertEqual(target, actual)
=== modified file 'bzrlib/tests/tree_implementations/test_inv.py'
--- a/bzrlib/tests/tree_implementations/test_inv.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/test_inv.py 2009-04-11 16:06:53 +0000
@@ -20,11 +20,12 @@
from cStringIO import StringIO
import os
-from bzrlib.diff import internal_diff
+from bzrlib import (
+ tests,
+ )
+from bzrlib.tests import tree_implementations
from bzrlib.mutabletree import MutableTree
-from bzrlib.osutils import has_symlinks
from bzrlib.tests import SymlinkFeature, TestSkipped
-from bzrlib.tests.tree_implementations import TestCaseWithTree
from bzrlib.transform import _PreviewTree
from bzrlib.uncommit import uncommit
@@ -33,7 +34,7 @@
return tree.iter_entries_by_dir([file_id]).next()[1]
-class TestPreviousHeads(TestCaseWithTree):
+class TestPreviousHeads(tree_implementations.TestCaseWithTree):
def setUp(self):
# we want several inventories, that respectively
@@ -68,16 +69,17 @@
# TODO: test two inventories with the same file revision
-class TestInventory(TestCaseWithTree):
-
- def _set_up(self):
+class TestInventoryWithSymlinks(tree_implementations.TestCaseWithTree):
+
+ _test_needs_features = [tests.SymlinkFeature]
+
+ def setUp(self):
+ tree_implementations.TestCaseWithTree.setUp(self)
self.tree = self.get_tree_with_subdirs_and_all_content_types()
self.tree.lock_read()
self.addCleanup(self.tree.unlock)
def test_symlink_target(self):
- self.requireFeature(SymlinkFeature)
- self._set_up()
if isinstance(self.tree, (MutableTree, _PreviewTree)):
raise TestSkipped(
'symlinks not accurately represented in working trees and'
@@ -86,24 +88,21 @@
self.assertEqual(entry.symlink_target, 'link-target')
def test_symlink_target_tree(self):
- self.requireFeature(SymlinkFeature)
- self._set_up()
self.assertEqual('link-target',
self.tree.get_symlink_target('symlink'))
def test_kind_symlink(self):
- self.requireFeature(SymlinkFeature)
- self._set_up()
self.assertEqual('symlink', self.tree.kind('symlink'))
self.assertIs(None, self.tree.get_file_size('symlink'))
def test_symlink(self):
- self.requireFeature(SymlinkFeature)
- self._set_up()
entry = get_entry(self.tree, self.tree.path2id('symlink'))
self.assertEqual(entry.kind, 'symlink')
self.assertEqual(None, entry.text_size)
+
+class TestInventory(tree_implementations.TestCaseWithTree):
+
def test_paths2ids_recursive(self):
work_tree = self.make_branch_and_tree('tree')
self.build_tree(['tree/dir/', 'tree/dir/file'])
@@ -136,27 +135,31 @@
def test_canonical_path(self):
work_tree = self._make_canonical_test_tree()
- self.assertEqual(work_tree.get_canonical_inventory_path('Dir/File'), 'dir/file')
+ self.assertEqual('dir/file',
+ work_tree.get_canonical_inventory_path('Dir/File'))
def test_canonical_path_before_commit(self):
work_tree = self._make_canonical_test_tree(False)
# note: not committed.
- self.assertEqual(work_tree.get_canonical_inventory_path('Dir/File'), 'dir/file')
+ self.assertEqual('dir/file',
+ work_tree.get_canonical_inventory_path('Dir/File'))
def test_canonical_path_dir(self):
# check it works when asked for just the directory portion.
work_tree = self._make_canonical_test_tree()
- self.assertEqual(work_tree.get_canonical_inventory_path('Dir'), 'dir')
+ self.assertEqual('dir', work_tree.get_canonical_inventory_path('Dir'))
def test_canonical_path_root(self):
work_tree = self._make_canonical_test_tree()
- self.assertEqual(work_tree.get_canonical_inventory_path(''), '')
- self.assertEqual(work_tree.get_canonical_inventory_path('/'), '/')
+ self.assertEqual('', work_tree.get_canonical_inventory_path(''))
+ self.assertEqual('/', work_tree.get_canonical_inventory_path('/'))
def test_canonical_path_invalid_all(self):
work_tree = self._make_canonical_test_tree()
- self.assertEqual(work_tree.get_canonical_inventory_path('foo/bar'), 'foo/bar')
+ self.assertEqual('foo/bar',
+ work_tree.get_canonical_inventory_path('foo/bar'))
def test_canonical_invalid_child(self):
work_tree = self._make_canonical_test_tree()
- self.assertEqual(work_tree.get_canonical_inventory_path('Dir/None'), 'dir/None')
+ self.assertEqual('dir/None',
+ work_tree.get_canonical_inventory_path('Dir/None'))
=== modified file 'bzrlib/tests/tree_implementations/test_path_content_summary.py'
--- a/bzrlib/tests/tree_implementations/test_path_content_summary.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/test_path_content_summary.py 2009-04-11 16:06:53 +0000
@@ -18,21 +18,24 @@
import os
-from bzrlib.osutils import supports_executable, _fs_enc
-from bzrlib.tests import SymlinkFeature, TestSkipped, TestNotApplicable
-from bzrlib.tests.tree_implementations import TestCaseWithTree
-
-
-class TestPathContentSummary(TestCaseWithTree):
+from bzrlib import (
+ osutils,
+ tests,
+ )
+
+from bzrlib.tests import tree_implementations
+
+
+class TestPathContentSummary(tree_implementations.TestCaseWithTree):
def _convert_tree(self, tree):
- result = TestCaseWithTree._convert_tree(self, tree)
+ result = tree_implementations.TestCaseWithTree._convert_tree(self, tree)
result.lock_read()
self.addCleanup(result.unlock)
return result
def test_symlink_content_summary(self):
- self.requireFeature(SymlinkFeature)
+ self.requireFeature(tests.SymlinkFeature)
tree = self.make_branch_and_tree('tree')
os.symlink('target', 'tree/path')
tree.add(['path'])
@@ -40,27 +43,19 @@
self.assertEqual(('symlink', None, None, 'target'), summary)
def test_unicode_symlink_content_summary(self):
- self.requireFeature(SymlinkFeature)
+ self.requireFeature(tests.SymlinkFeature)
+ self.requireFeature(tests.UnicodeFilenameFeature)
tree = self.make_branch_and_tree('tree')
- try:
- os.symlink('target', u'tree/\u03b2-path'.encode(_fs_enc))
- except UnicodeError:
- raise TestSkipped(
- 'This platform does not support unicode file paths.')
-
+ os.symlink('target', u'tree/\u03b2-path'.encode(osutils._fs_enc))
tree.add([u'\u03b2-path'])
summary = self._convert_tree(tree).path_content_summary(u'\u03b2-path')
self.assertEqual(('symlink', None, None, 'target'), summary)
def test_unicode_symlink_target_summary(self):
- self.requireFeature(SymlinkFeature)
+ self.requireFeature(tests.SymlinkFeature)
+ self.requireFeature(tests.UnicodeFilenameFeature)
tree = self.make_branch_and_tree('tree')
- try:
- os.symlink(u'tree/\u03b2-path'.encode(_fs_enc), 'tree/link')
- except UnicodeError:
- raise TestSkipped(
- 'This platform does not support unicode file paths.')
-
+ os.symlink(u'tree/\u03b2-path'.encode(osutils._fs_enc), 'tree/link')
tree.add(['link'])
summary = self._convert_tree(tree).path_content_summary('link')
self.assertEqual(('symlink', None, None, u'tree/\u03b2-path'), summary)
@@ -71,8 +66,8 @@
self.assertEqual(('missing', None, None, None), summary)
def test_file_content_summary_executable(self):
- if not supports_executable():
- raise TestNotApplicable()
+ if not osutils.supports_executable():
+ raise tests.TestNotApplicable()
tree = self.make_branch_and_tree('tree')
self.build_tree(['tree/path'])
tree.add(['path'])
@@ -99,7 +94,7 @@
# size must be known
self.assertEqual(22, summary[1])
# not executable
- if supports_executable:
+ if osutils.supports_executable:
self.assertEqual(False, summary[2])
else:
self.assertEqual(None, summary[2])
@@ -119,7 +114,7 @@
subtree = self.make_branch_and_tree('tree/path')
tree.add(['path'])
if not tree.branch.repository._format.supports_tree_reference:
- raise TestSkipped("Tree references not supported.")
+ raise tests.TestNotApplicable("Tree references not supported.")
summary = self._convert_tree(tree).path_content_summary('path')
self.assertEqual(4, len(summary))
self.assertEqual('tree-reference', summary[0])
=== modified file 'bzrlib/tests/tree_implementations/test_test_trees.py'
--- a/bzrlib/tests/tree_implementations/test_test_trees.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/test_test_trees.py 2009-04-11 16:06:53 +0000
@@ -16,11 +16,11 @@
"""Tests for the test trees used by the tree_implementations tests."""
-from bzrlib.tests import SymlinkFeature
-from bzrlib.tests.tree_implementations import TestCaseWithTree
-
-
-class TestTreeShapes(TestCaseWithTree):
+from bzrlib import tests
+from bzrlib.tests import tree_implementations
+
+
+class TestTreeShapes(tree_implementations.TestCaseWithTree):
def test_empty_tree_no_parents(self):
tree = self.make_branch_and_tree('.')
@@ -147,7 +147,7 @@
# currently this test tree requires unicode. It might be good
# to have it simply stop having the single unicode file in it
# when dealing with a non-unicode filesystem.
- self.requireFeature(SymlinkFeature)
+ self.requireFeature(tests.SymlinkFeature)
tree = self.get_tree_with_subdirs_and_all_content_types()
tree.lock_read()
self.addCleanup(tree.unlock)
=== modified file 'bzrlib/tests/tree_implementations/test_walkdirs.py'
--- a/bzrlib/tests/tree_implementations/test_walkdirs.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/tree_implementations/test_walkdirs.py 2009-04-11 16:06:53 +0000
@@ -26,44 +26,31 @@
class TestWalkdirs(TestCaseWithTree):
def get_all_subdirs_expected(self, tree, symlinks):
+ dirblocks = [
+ (('', tree.path2id('')),
+ [('0file', '0file', 'file', None, '2file', 'file'),
+ ('1top-dir', '1top-dir', 'directory', None,
+ '1top-dir', 'directory'),
+ (u'2utf\u1234file', u'2utf\u1234file', 'file', None,
+ u'0utf\u1234file'.encode('utf8'), 'file'),
+ ]),
+ (('1top-dir', '1top-dir'),
+ [('1top-dir/0file-in-1topdir', '0file-in-1topdir',
+ 'file', None, '1file-in-1topdir', 'file'),
+ ('1top-dir/1dir-in-1topdir', '1dir-in-1topdir',
+ 'directory', None, '0dir-in-1topdir', 'directory'),
+ ]),
+ (('1top-dir/1dir-in-1topdir', '0dir-in-1topdir'),
+ []),
+ ]
if symlinks:
- return [
- (('', tree.path2id('')),
- [
- ('0file', '0file', 'file', None, '2file', 'file'),
- ('1top-dir', '1top-dir', 'directory', None, '1top-dir', 'directory'),
- (u'2utf\u1234file', u'2utf\u1234file', 'file', None,
- u'0utf\u1234file'.encode('utf8'), 'file'),
- ('symlink', 'symlink', 'symlink', None, 'symlink', 'symlink')
- ]),
- (('1top-dir', '1top-dir'),
- [('1top-dir/0file-in-1topdir', '0file-in-1topdir', 'file', None, '1file-in-1topdir', 'file'),
- ('1top-dir/1dir-in-1topdir', '1dir-in-1topdir', 'directory', None, '0dir-in-1topdir', 'directory'),
- ]),
- (('1top-dir/1dir-in-1topdir', '0dir-in-1topdir'),
- [
- ]),
- ]
- else:
- return [
- (('', tree.path2id('')),
- [
- ('0file', '0file', 'file', None, '2file', 'file'),
- ('1top-dir', '1top-dir', 'directory', None, '1top-dir', 'directory'),
- (u'2utf\u1234file', u'2utf\u1234file', 'file', None,
- u'0utf\u1234file'.encode('utf8'), 'file'),
- ]),
- (('1top-dir', '1top-dir'),
- [('1top-dir/0file-in-1topdir', '0file-in-1topdir', 'file', None, '1file-in-1topdir', 'file'),
- ('1top-dir/1dir-in-1topdir', '1dir-in-1topdir', 'directory', None, '0dir-in-1topdir', 'directory'),
- ]),
- (('1top-dir/1dir-in-1topdir', '0dir-in-1topdir'),
- [
- ]),
- ]
+ dirblocks[0][1].append(('symlink', 'symlink', 'symlink', None,
+ 'symlink', 'symlink'))
+ return dirblocks
def test_walkdir_root(self):
- tree = self.get_tree_with_subdirs_and_all_supported_content_types(has_symlinks())
+ tree = self.get_tree_with_subdirs_and_all_supported_content_types(
+ has_symlinks())
tree.lock_read()
expected_dirblocks = self.get_all_subdirs_expected(tree, has_symlinks())
# test that its iterable by iterating
=== modified file 'bzrlib/tests/workingtree_implementations/__init__.py'
--- a/bzrlib/tests/workingtree_implementations/__init__.py 2009-03-27 14:22:25 +0000
+++ b/bzrlib/tests/workingtree_implementations/__init__.py 2009-04-11 16:06:53 +0000
@@ -22,36 +22,26 @@
rather than in tests/workingtree_implementations/*.py.
"""
-import bzrlib.errors as errors
-from bzrlib.transport import get_transport
-from bzrlib.tests import (
- default_transport,
- multiply_tests,
- )
-from bzrlib.tests.bzrdir_implementations.test_bzrdir import TestCaseWithBzrDir
-from bzrlib.workingtree import (WorkingTreeFormat,
- _legacy_formats,
- )
+from bzrlib import (
+ errors,
+ tests,
+ workingtree,
+ )
+from bzrlib.tests import bzrdir_implementations
def make_scenarios(transport_server, transport_readonly_server, formats):
- """Create a scenario for the specified converter
-
- :param workingtree_format: The particular workingtree format to test.
- :param bzrdir_format: The bzrdir format to test.
- :return: a (name, options) tuple, where options is a dict of values
- to be used as members of the TestCase.
- """
result = []
for workingtree_format in formats:
result.append((workingtree_format.__class__.__name__,
- make_scenario(transport_server, transport_readonly_server,
- workingtree_format)))
+ make_scenario(transport_server,
+ transport_readonly_server,
+ workingtree_format)))
return result
def make_scenario(transport_server, transport_readonly_server,
- workingtree_format):
+ workingtree_format):
return {
"transport_server": transport_server,
"transport_readonly_server": transport_readonly_server,
@@ -60,7 +50,7 @@
}
-class TestCaseWithWorkingTree(TestCaseWithBzrDir):
+class TestCaseWithWorkingTree(bzrdir_implementations.TestCaseWithBzrDir):
def make_branch_and_tree(self, relpath, format=None):
made_control = self.make_bzrdir(relpath, format=format)
@@ -112,13 +102,14 @@
]
scenarios = make_scenarios(
- default_transport,
+ tests.default_transport,
# None here will cause a readonly decorator to be created
# by the TestCaseWithTransport.get_readonly_transport method.
None,
- WorkingTreeFormat._formats.values() + _legacy_formats)
+ workingtree.WorkingTreeFormat._formats.values()
+ + workingtree._legacy_formats)
# add the tests for the sub modules
- return multiply_tests(
+ return tests.multiply_tests(
loader.loadTestsFromModuleNames(test_workingtree_implementations),
scenarios, standard_tests)
More information about the bazaar-commits
mailing list