~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_knit.py

  • Committer: Martin Pool
  • Date: 2010-01-29 14:09:05 UTC
  • mto: This revision was merged to the branch mainline in revision 4992.
  • Revision ID: mbp@sourcefrog.net-20100129140905-2uiarb6p8di1ywsr
Correction to url

from review: https://code.edge.launchpad.net/~mbp/bzr/doc/+merge/18250

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007 Canonical Ltd
2
2
#
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
17
17
"""Tests for Knit data structure"""
18
18
 
19
19
from cStringIO import StringIO
 
20
import difflib
 
21
import gzip
20
22
import sys
21
23
 
22
24
from bzrlib import (
23
25
    errors,
 
26
    generate_ids,
24
27
    knit,
25
28
    multiparent,
26
29
    osutils,
27
30
    pack,
28
31
    tests,
29
 
    transport,
30
 
    tuned_gzip,
31
32
    )
32
33
from bzrlib.errors import (
 
34
    RevisionAlreadyPresent,
33
35
    KnitHeaderError,
 
36
    RevisionNotPresent,
34
37
    NoSuchFile,
35
38
    )
36
39
from bzrlib.index import *
37
40
from bzrlib.knit import (
38
41
    AnnotatedKnitContent,
39
42
    KnitContent,
 
43
    KnitSequenceMatcher,
40
44
    KnitVersionedFiles,
41
45
    PlainKnitContent,
42
46
    _VFContentMapGenerator,
46
50
    _KnitKeyAccess,
47
51
    make_file_factory,
48
52
    )
49
 
from bzrlib.patiencediff import PatienceSequenceMatcher
50
53
from bzrlib.repofmt import pack_repo
51
54
from bzrlib.tests import (
 
55
    Feature,
 
56
    KnownFailure,
52
57
    TestCase,
53
58
    TestCaseWithMemoryTransport,
54
59
    TestCaseWithTransport,
55
60
    TestNotApplicable,
56
61
    )
 
62
from bzrlib.transport import get_transport
 
63
from bzrlib.transport.memory import MemoryTransport
 
64
from bzrlib.tuned_gzip import GzipFile
57
65
from bzrlib.versionedfile import (
58
66
    AbsentContentFactory,
59
67
    ConstantMapper,
98
106
        line_delta = source_content.line_delta(target_content)
99
107
        delta_blocks = list(KnitContent.get_line_delta_blocks(line_delta,
100
108
            source_lines, target_lines))
101
 
        matcher = PatienceSequenceMatcher(None, source_lines, target_lines)
102
 
        matcher_blocks = list(matcher.get_matching_blocks())
 
109
        matcher = KnitSequenceMatcher(None, source_lines, target_lines)
 
110
        matcher_blocks = list(list(matcher.get_matching_blocks()))
103
111
        self.assertEqual(matcher_blocks, delta_blocks)
104
112
 
105
113
    def test_get_line_delta_blocks(self):
692
700
 
693
701
    def create_gz_content(self, text):
694
702
        sio = StringIO()
695
 
        gz_file = tuned_gzip.GzipFile(mode='wb', fileobj=sio)
 
703
        gz_file = gzip.GzipFile(mode='wb', fileobj=sio)
696
704
        gz_file.write(text)
697
705
        gz_file.close()
698
706
        return sio.getvalue()
1571
1579
        # could leave an empty .kndx file, which bzr would later claim was a
1572
1580
        # corrupted file since the header was not present. In reality, the file
1573
1581
        # just wasn't created, so it should be ignored.
1574
 
        t = transport.get_transport('.')
 
1582
        t = get_transport('.')
1575
1583
        t.put_bytes('test.kndx', '')
1576
1584
 
1577
1585
        knit = self.make_test_knit()
1578
1586
 
1579
1587
    def test_knit_index_checks_header(self):
1580
 
        t = transport.get_transport('.')
 
1588
        t = get_transport('.')
1581
1589
        t.put_bytes('test.kndx', '# not really a knit header\n\n')
1582
1590
        k = self.make_test_knit()
1583
1591
        self.assertRaises(KnitHeaderError, k.keys)