~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_weave.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-01-03 18:09:01 UTC
  • mfrom: (3159.1.1 trunk)
  • Revision ID: pqm@pqm.ubuntu.com-20080103180901-w987y1ftqoh02qbm
(vila) Fix #179368 by keeping the current range hint on
        ShortReadvErrors

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#! /usr/bin/python2.4
2
 
 
3
1
# Copyright (C) 2005 Canonical Ltd
4
2
#
5
3
# This program is free software; you can redistribute it and/or modify
30
28
    )
31
29
from bzrlib.osutils import sha_string
32
30
from bzrlib.tests import TestCase, TestCaseInTempDir
33
 
from bzrlib.weave import Weave, WeaveFormatError, WeaveError, reweave
 
31
from bzrlib.weave import Weave, WeaveFormatError, WeaveError
34
32
from bzrlib.weavefile import write_weave, read_weave
35
33
 
36
34
 
41
39
 
42
40
 
43
41
class TestBase(TestCase):
 
42
 
44
43
    def check_read_write(self, k):
45
44
        """Check the weave k can be written & re-read."""
46
45
        from tempfile import TemporaryFile
77
76
        k = Weave()
78
77
 
79
78
 
80
 
class StoreText(TestBase):
81
 
    """Store and retrieve a simple text."""
82
 
 
83
 
    def test_storing_text(self):
84
 
        k = Weave()
85
 
        idx = k.add_lines('text0', [], TEXT_0)
86
 
        self.assertEqual(k.get_lines(idx), TEXT_0)
87
 
        self.assertEqual(idx, 0)
88
 
 
89
 
 
90
79
class AnnotateOne(TestBase):
91
80
    def runTest(self):
92
81
        k = Weave()
95
84
                         [('text0', TEXT_0[0])])
96
85
 
97
86
 
98
 
class StoreTwo(TestBase):
99
 
    def runTest(self):
100
 
        k = Weave()
101
 
 
102
 
        idx = k.add_lines('text0', [], TEXT_0)
103
 
        self.assertEqual(idx, 0)
104
 
 
105
 
        idx = k.add_lines('text1', [], TEXT_1)
106
 
        self.assertEqual(idx, 1)
107
 
 
108
 
        self.assertEqual(k.get_lines(0), TEXT_0)
109
 
        self.assertEqual(k.get_lines(1), TEXT_1)
110
 
 
111
 
 
112
87
class GetSha1(TestBase):
113
88
    def test_get_sha1(self):
114
89
        k = Weave()
135
110
 
136
111
class RepeatedAdd(TestBase):
137
112
    """Add the same version twice; harmless."""
138
 
    def runTest(self):
 
113
 
 
114
    def test_duplicate_add(self):
139
115
        k = Weave()
140
116
        idx = k.add_lines('text0', [], TEXT_0)
141
117
        idx2 = k.add_lines('text0', [], TEXT_0)
731
707
        eq(wa.get_lines('b1'),
732
708
           ['hello\n', 'pale blue\n', 'world\n'])
733
709
 
734
 
    def test_join_parent_disagreement(self):
735
 
        #join reconciles differening parents into a union.
736
 
        wa = Weave()
737
 
        wb = Weave()
738
 
        wa.add_lines('v1', [], ['hello\n'])
739
 
        wb.add_lines('v0', [], [])
740
 
        wb.add_lines('v1', ['v0'], ['hello\n'])
741
 
        wa.join(wb)
742
 
        self.assertEqual(['v0'], wa.get_parents('v1'))
743
 
 
744
710
    def test_join_text_disagreement(self):
745
711
        """Cannot join weaves with different texts for a version."""
746
712
        wa = Weave()