~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/revisionstore_implementations/__init__.py

  • Committer: Robert Collins
  • Date: 2007-07-04 08:08:13 UTC
  • mfrom: (2572 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2587.
  • Revision ID: robertc@robertcollins.net-20070704080813-wzebx0r88fvwj5rq
Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006 by Canonical Ltd
 
1
# Copyright (C) 2006 Canonical Ltd
2
2
# Authors: Robert Collins <robert.collins@canonical.com>
3
3
#
4
4
# This program is free software; you can redistribute it and/or modify
24
24
rather than in tests/revisionstore_implementations/*.py.
25
25
"""
26
26
 
27
 
from bzrlib.store.revision import RevisionStoreTestProviderAdapter
28
 
                            
29
27
from bzrlib.tests import (
30
28
                          adapt_modules,
31
29
                          default_transport,
32
30
                          TestLoader,
 
31
                          TestScenarioApplier,
33
32
                          TestSuite,
34
33
                          )
35
34
 
36
35
 
 
36
class RevisionStoreTestProviderAdapter(TestScenarioApplier):
 
37
    """A tool to generate a suite testing multiple repository stores.
 
38
 
 
39
    This is done by copying the test once for each repository store
 
40
    and injecting the transport_server, transport_readonly_server,
 
41
    and revision-store-factory into each copy.
 
42
    Each copy is also given a new id() to make it easy to identify.
 
43
    """
 
44
 
 
45
    def __init__(self, transport_server, transport_readonly_server, factories):
 
46
        self._transport_server = transport_server
 
47
        self._transport_readonly_server = transport_readonly_server
 
48
        self.scenarios = self.factories_to_scenarios(factories)
 
49
    
 
50
    def factories_to_scenarios(self, factories):
 
51
        """Transform the input factories to a list of scenarios.
 
52
 
 
53
        :param factories: A list of factories.
 
54
        """
 
55
        result = []
 
56
        for factory in factories:
 
57
            scenario = (factory, {
 
58
                "transport_server":self._transport_server,
 
59
                "transport_readonly_server":self._transport_readonly_server,
 
60
                "store_factory":factory,
 
61
                })
 
62
            result.append(scenario)
 
63
        return result
 
64
 
 
65
    @staticmethod
 
66
    def default_test_list():
 
67
        """Generate the default list of revision store permutations to test."""
 
68
        from bzrlib.store.revision.text import TextRevisionStoreTestFactory
 
69
        from bzrlib.store.revision.knit import KnitRevisionStoreFactory
 
70
        result = []
 
71
        # test the fallback InterVersionedFile from weave to annotated knits
 
72
        result.append(TextRevisionStoreTestFactory())
 
73
        result.append(KnitRevisionStoreFactory())
 
74
        return result
 
75
 
 
76
 
37
77
def test_suite():
38
78
    result = TestSuite()
39
79
    test_revisionstore_implementations = [