1
# Copyright (C) 2005, 2006 Canonical Ltd
1
# Copyright (C) 2005, 2006, 2007 Canonical Ltd
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
39
40
from bzrlib.tests.HttpServer import HttpServer
40
41
from bzrlib.transport import get_transport
41
42
from bzrlib.transport.memory import MemoryServer
42
import bzrlib.workingtree as workingtree
43
from bzrlib.repofmt import knitrepo, weaverepo
45
46
class TestDefaultFormat(TestCase):
70
71
' repositories', deprecated=True)
71
72
my_format_registry.register_lazy('lazy', 'bzrlib.bzrdir',
72
73
'BzrDirFormat6', 'Format registered lazily', deprecated=True)
73
my_format_registry.register_metadir('knit', 'RepositoryFormatKnit1',
74
my_format_registry.register_metadir('knit',
75
'bzrlib.repofmt.knitrepo.RepositoryFormatKnit1',
75
78
my_format_registry.register_metadir('experimental-knit3',
76
'RepositoryFormatKnit2',
78
tree='WorkingTreeFormat4')
79
'bzrlib.repofmt.knitrepo.RepositoryFormatKnit3',
81
tree='WorkingTreeFormat4')
79
82
my_format_registry.set_default('knit')
80
my_format_registry.register_metadir('metaweave', 'RepositoryFormat7',
81
'Transitional format in 0.8. Slower than knit.', deprecated=True)
82
my_format_registry.register_metadir('experimental-knit2',
83
'RepositoryFormatKnit2',
84
'Experimental successor to knit. Use at your own risk.')
83
my_format_registry.register_metadir(
85
'bzrlib.repofmt.knitrepo.RepositoryFormatKnit2',
86
'Experimental successor to knit. Use at your own risk.',
88
my_format_registry.register_metadir(
90
'bzrlib.repofmt.knitrepo.RepositoryFormatKnit2',
91
'Experimental successor to knit. Use at your own risk.',
92
branch_format='BzrBranchFormat6')
85
93
return my_format_registry
87
95
def test_format_registry(self):
92
100
self.assertIsInstance(my_bzrdir, bzrdir.BzrDirFormat6)
93
101
my_bzrdir = my_format_registry.make_bzrdir('default')
94
102
self.assertIsInstance(my_bzrdir.repository_format,
95
repository.RepositoryFormatKnit1)
103
knitrepo.RepositoryFormatKnit1)
96
104
my_bzrdir = my_format_registry.make_bzrdir('knit')
97
105
self.assertIsInstance(my_bzrdir.repository_format,
98
repository.RepositoryFormatKnit1)
99
my_bzrdir = my_format_registry.make_bzrdir('metaweave')
100
self.assertIsInstance(my_bzrdir.repository_format,
101
repository.RepositoryFormat7)
102
self.assertIsInstance(my_bzrdir.workingtree_format,
103
workingtree.WorkingTreeFormat3)
106
knitrepo.RepositoryFormatKnit1)
104
107
my_bzrdir = my_format_registry.make_bzrdir('experimental-knit3')
105
108
self.assertIsInstance(my_bzrdir.repository_format,
106
repository.RepositoryFormatKnit2)
109
knitrepo.RepositoryFormatKnit3)
107
110
self.assertIsInstance(my_bzrdir.workingtree_format,
108
111
workingtree.WorkingTreeFormat4)
112
my_bzrdir = my_format_registry.make_bzrdir('branch6')
113
self.assertIsInstance(my_bzrdir.get_branch_format(),
114
bzrlib.branch.BzrBranchFormat6)
110
116
def test_get_help(self):
111
117
my_format_registry = self.make_format_registry()
135
141
default_factory = bzrdir.format_registry.get('default')
136
142
old_default = [k for k, v in bzrdir.format_registry.iteritems()
137
143
if v == default_factory and k != 'default'][0]
138
bzrdir.format_registry.set_default_repository('metaweave')
144
bzrdir.format_registry.set_default_repository('experimental-knit2')
140
self.assertIs(bzrdir.format_registry.get('metaweave'),
146
self.assertIs(bzrdir.format_registry.get('experimental-knit2'),
141
147
bzrdir.format_registry.get('default'))
143
149
repository.RepositoryFormat.get_default_format().__class__,
144
repository.RepositoryFormat7)
150
knitrepo.RepositoryFormatKnit2)
146
152
bzrdir.format_registry.set_default_repository(old_default)
504
510
repository_base = t.clone('repository').base
505
511
self.assertEqual(repository_base, dir.get_repository_transport(None).base)
506
512
self.assertEqual(repository_base,
507
dir.get_repository_transport(repository.RepositoryFormat7()).base)
513
dir.get_repository_transport(weaverepo.RepositoryFormat7()).base)
508
514
checkout_base = t.clone('checkout').base
509
515
self.assertEqual(checkout_base, dir.get_workingtree_transport(None).base)
510
516
self.assertEqual(checkout_base,