/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_versionedfile.py

  • Committer: Martin Pool
  • Date: 2007-09-03 04:35:49 UTC
  • mfrom: (2778 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2779.
  • Revision ID: mbp@sourcefrog.net-20070903043549-0cfyrgx7z2h8ppks
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
                           RevisionAlreadyPresent,
35
35
                           WeaveParentMismatch
36
36
                           )
37
 
from bzrlib.knit import KnitVersionedFile, \
38
 
     KnitAnnotateFactory
39
 
from bzrlib.tests import TestCaseWithTransport, TestSkipped
 
37
from bzrlib.knit import (
 
38
    KnitVersionedFile,
 
39
    KnitAnnotateFactory,
 
40
    KnitPlainFactory,
 
41
    )
 
42
from bzrlib.tests import TestCaseWithMemoryTransport, TestSkipped
40
43
from bzrlib.tests.HTTPTestUtil import TestCaseWithWebserver
41
44
from bzrlib.trace import mutter
42
45
from bzrlib.transport import get_transport
826
829
                          vf.get_sha1s(['a', 'c', 'b']))
827
830
        
828
831
 
829
 
class TestWeave(TestCaseWithTransport, VersionedFileTestMixIn):
 
832
class TestWeave(TestCaseWithMemoryTransport, VersionedFileTestMixIn):
830
833
 
831
834
    def get_file(self, name='foo'):
832
835
        return WeaveFile(name, get_transport(self.get_url('.')), create=True)
878
881
        return WeaveFile
879
882
 
880
883
 
881
 
class TestKnit(TestCaseWithTransport, VersionedFileTestMixIn):
 
884
class TestKnit(TestCaseWithMemoryTransport, VersionedFileTestMixIn):
882
885
 
883
886
    def get_file(self, name='foo'):
884
 
        return KnitVersionedFile(name, get_transport(self.get_url('.')),
885
 
                                 delta=True, create=True)
 
887
        return self.get_factory()(name, get_transport(self.get_url('.')),
 
888
                                  delta=True, create=True)
886
889
 
887
890
    def get_factory(self):
888
891
        return KnitVersionedFile
894
897
        return knit
895
898
 
896
899
    def reopen_file(self, name='foo', create=False):
897
 
        return KnitVersionedFile(name, get_transport(self.get_url('.')),
 
900
        return self.get_factory()(name, get_transport(self.get_url('.')),
898
901
            delta=True,
899
902
            create=create)
900
903
 
909
912
                          get_transport(self.get_url('.')))
910
913
 
911
914
 
 
915
class TestPlaintextKnit(TestKnit):
 
916
    """Test a knit with no cached annotations"""
 
917
 
 
918
    def _factory(self, name, transport, file_mode=None, access_mode=None,
 
919
                 delta=True, create=False):
 
920
        return KnitVersionedFile(name, transport, file_mode, access_mode,
 
921
                                 KnitPlainFactory(), delta=delta,
 
922
                                 create=create)
 
923
 
 
924
    def get_factory(self):
 
925
        return self._factory
 
926
 
 
927
 
912
928
class InterString(versionedfile.InterVersionedFile):
913
929
    """An inter-versionedfile optimised code path for strings.
914
930
 
927
943
# if we make the registry a separate class though we still need to 
928
944
# test the behaviour in the active registry to catch failure-to-handle-
929
945
# stange-objects
930
 
class TestInterVersionedFile(TestCaseWithTransport):
 
946
class TestInterVersionedFile(TestCaseWithMemoryTransport):
931
947
 
932
948
    def test_get_default_inter_versionedfile(self):
933
949
        # test that the InterVersionedFile.get(a, b) probes
1247
1263
        self._test_merge_from_strings(base, a, b, result)
1248
1264
 
1249
1265
 
1250
 
class TestKnitMerge(TestCaseWithTransport, MergeCasesMixin):
 
1266
class TestKnitMerge(TestCaseWithMemoryTransport, MergeCasesMixin):
1251
1267
 
1252
1268
    def get_file(self, name='foo'):
1253
1269
        return KnitVersionedFile(name, get_transport(self.get_url('.')),
1257
1273
        pass
1258
1274
 
1259
1275
 
1260
 
class TestWeaveMerge(TestCaseWithTransport, MergeCasesMixin):
 
1276
class TestWeaveMerge(TestCaseWithMemoryTransport, MergeCasesMixin):
1261
1277
 
1262
1278
    def get_file(self, name='foo'):
1263
1279
        return WeaveFile(name, get_transport(self.get_url('.')), create=True)
1270
1286
 
1271
1287
    overlappedInsertExpected = ['aaa', '<<<<<<< ', 'xxx', 'yyy', '=======', 
1272
1288
                                'xxx', '>>>>>>> ', 'bbb']
 
1289
 
 
1290
 
 
1291
class TestFormatSignatures(TestCaseWithMemoryTransport):
 
1292
 
 
1293
    def get_knit_file(self, name, annotated):
 
1294
        if annotated:
 
1295
            factory = KnitAnnotateFactory()
 
1296
        else:
 
1297
            factory = KnitPlainFactory()
 
1298
        return KnitVersionedFile(
 
1299
            name, get_transport(self.get_url('.')), create=True,
 
1300
            factory=factory)
 
1301
 
 
1302
    def test_knit_format_signatures(self):
 
1303
        """Different formats of knit have different signature strings."""
 
1304
        knit = self.get_knit_file('a', True)
 
1305
        self.assertEqual('knit-annotated', knit.get_format_signature())
 
1306
        knit = self.get_knit_file('p', False)
 
1307
        self.assertEqual('knit-plain', knit.get_format_signature())
 
1308