~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_repository.py

Optimize Tree._iter_changes with specific file_ids

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
41
41
 
42
42
 
43
43
class TestDefaultFormat(TestCase):
44
44
 
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.
50
51
        try:
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'
77
78
 
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;') 
 
439
 
 
440
 
 
441
class TestRepositoryFormatKnit2(TestCaseWithTransport):
 
442
 
 
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)