36
36
import bzrlib.repository as repository
37
37
from bzrlib.tests import TestCase, TestCaseWithTransport
38
38
from bzrlib.transport import get_transport
39
from bzrlib.transport.http import HttpServer
40
39
from bzrlib.transport.memory import MemoryServer
40
from bzrlib import upgrade, workingtree
43
43
class TestDefaultFormat(TestCase):
45
45
def test_get_set_default_format(self):
46
private_default = repository._default_format.__class__
46
47
old_format = repository.RepositoryFormat.get_default_format()
47
self.assertTrue(isinstance(old_format, repository.RepositoryFormatKnit1))
48
self.assertTrue(isinstance(old_format, private_default))
48
49
repository.RepositoryFormat.set_default_format(SampleRepositoryFormat())
49
50
# creating a repository should now create an instrumented dir.
72
73
def initialize(self, a_bzrdir, shared=False):
73
74
"""Initialize a repository in a BzrDir"""
74
75
t = a_bzrdir.get_repository_transport(self)
75
t.put('format', StringIO(self.get_format_string()))
76
t.put_bytes('format', self.get_format_string())
76
77
return 'A bzr repository dir'
78
79
def is_supported(self):
435
436
def test_unescape_xml(self):
436
437
"""We get some kind of error when malformed entities are passed"""
437
438
self.assertRaises(KeyError, repository._unescape_xml, 'foo&bar;')
441
class TestRepositoryFormatKnit2(TestCaseWithTransport):
443
def test_convert(self):
444
"""Ensure the upgrade adds weaves for roots"""
445
format = bzrdir.BzrDirMetaFormat1()
446
format.repository_format = repository.RepositoryFormatKnit1()
447
tree = self.make_branch_and_tree('.', format)
448
tree.commit("Dull commit", rev_id="dull")
449
revision_tree = tree.branch.repository.revision_tree('dull')
450
self.assertRaises(errors.NoSuchFile, revision_tree.get_file_lines,
451
revision_tree.inventory.root.file_id)
452
format = bzrdir.BzrDirMetaFormat1()
453
format.repository_format = repository.RepositoryFormatKnit2()
454
upgrade.Convert('.', format)
455
tree = workingtree.WorkingTree.open('.')
456
revision_tree = tree.branch.repository.revision_tree('dull')
457
revision_tree.get_file_lines(revision_tree.inventory.root.file_id)
458
tree.commit("Another dull commit", rev_id='dull2')
459
revision_tree = tree.branch.repository.revision_tree('dull2')
460
self.assertEqual('dull', revision_tree.inventory.root.revision)