1704
1700
BzrDirFormat._default_format = __default_format
1707
class BzrDirTestProviderAdapter(object):
1708
"""A tool to generate a suite testing multiple bzrdir formats at once.
1710
This is done by copying the test once for each transport and injecting
1711
the transport_server, transport_readonly_server, and bzrdir_format
1712
classes into each copy. Each copy is also given a new id() to make it
1716
def __init__(self, vfs_factory, transport_server, transport_readonly_server,
1718
"""Create an object to adapt tests.
1720
:param vfs_server: A factory to create a Transport Server which has
1721
all the VFS methods working, and is writable.
1723
self._vfs_factory = vfs_factory
1724
self._transport_server = transport_server
1725
self._transport_readonly_server = transport_readonly_server
1726
self._formats = formats
1728
def adapt(self, test):
1729
result = unittest.TestSuite()
1730
for format in self._formats:
1731
new_test = deepcopy(test)
1732
new_test.vfs_transport_factory = self._vfs_factory
1733
new_test.transport_server = self._transport_server
1734
new_test.transport_readonly_server = self._transport_readonly_server
1735
new_test.bzrdir_format = format
1736
def make_new_test_id():
1737
new_id = "%s(%s)" % (new_test.id(), format.__class__.__name__)
1738
return lambda: new_id
1739
new_test.id = make_new_test_id()
1740
result.addTest(new_test)
1744
1703
class Converter(object):
1745
1704
"""Converts a disk format object from one format to another."""