33
34
UnknownFormatError,
34
35
UnsupportedFormatError,
36
import bzrlib.repository as repository
37
from bzrlib.repository import RepositoryFormat
37
38
from bzrlib.tests import TestCase, TestCaseWithTransport
38
39
from bzrlib.transport import get_transport
39
40
from bzrlib.transport.memory import MemoryServer
40
from bzrlib import upgrade, workingtree
43
48
class TestDefaultFormat(TestCase):
45
50
def test_get_set_default_format(self):
46
private_default = repository._default_format.__class__
47
old_format = repository.RepositoryFormat.get_default_format()
48
self.assertTrue(isinstance(old_format, private_default))
49
repository.RepositoryFormat.set_default_format(SampleRepositoryFormat())
50
# creating a repository should now create an instrumented dir.
51
old_format = RepositoryFormat.get_default_format()
52
test_format = SampleRepositoryFormat()
53
RepositoryFormat.register_format(test_format)
52
# the default branch format is used by the meta dir format
53
# which is not the default bzrdir format at this point
54
dir = bzrdir.BzrDirMetaFormat1().initialize('memory:///')
55
result = dir.create_repository()
56
self.assertEqual(result, 'A bzr repository dir')
55
self.applyDeprecated(symbol_versioning.zero_fourteen,
56
RepositoryFormat.set_default_format,
58
# creating a repository should now create an instrumented dir.
60
# the default branch format is used by the meta dir format
61
# which is not the default bzrdir format at this point
62
dir = bzrdir.BzrDirMetaFormat1().initialize('memory:///')
63
result = dir.create_repository()
64
self.assertEqual(result, 'A bzr repository dir')
66
self.applyDeprecated(symbol_versioning.zero_fourteen,
67
RepositoryFormat.set_default_format, old_format)
58
repository.RepositoryFormat.set_default_format(old_format)
59
self.assertEqual(old_format, repository.RepositoryFormat.get_default_format())
69
RepositoryFormat.unregister_format(test_format)
70
self.assertEqual(old_format, RepositoryFormat.get_default_format())
62
73
class SampleRepositoryFormat(repository.RepositoryFormat):