~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: John Arbash Meinel
  • Date: 2013-05-19 14:29:37 UTC
  • mfrom: (6437.63.9 2.5)
  • mto: (6437.63.10 2.5)
  • mto: This revision was merged to the branch mainline in revision 6575.
  • Revision ID: john@arbash-meinel.com-20130519142937-21ykz2n2y2f22za9
Merge in the actual 2.5 branch. It seems I failed before

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
from bzrlib import (
26
26
    branchbuilder,
27
27
    tests,
 
28
    transport,
28
29
    workingtree,
29
30
    )
30
 
from bzrlib.tests import per_controldir
31
 
 
32
 
 
33
 
def make_scenarios(transport_server, transport_readonly_server, formats):
 
31
from bzrlib.transport import memory
 
32
from bzrlib.tests import (
 
33
    per_controldir,
 
34
    test_server,
 
35
    )
 
36
 
 
37
 
 
38
def make_scenarios(transport_server, transport_readonly_server, formats,
 
39
                   remote_server=None, remote_readonly_server=None,
 
40
                   remote_backing_server=None):
34
41
    result = []
35
42
    for workingtree_format in formats:
36
43
        result.append((workingtree_format.__class__.__name__,
37
44
                       make_scenario(transport_server,
38
45
                                     transport_readonly_server,
39
46
                                     workingtree_format)))
 
47
    default_wt_format = workingtree.format_registry.get_default()
 
48
    if remote_server is None:
 
49
        remote_server = test_server.SmartTCPServer_for_testing
 
50
    if remote_readonly_server is None:
 
51
        remote_readonly_server = test_server.ReadonlySmartTCPServer_for_testing
 
52
    if remote_backing_server is None:
 
53
        remote_backing_server = memory.MemoryServer
 
54
    scenario = make_scenario(remote_server, remote_readonly_server,
 
55
                             default_wt_format)
 
56
    scenario['repo_is_remote'] = True;
 
57
    scenario['vfs_transport_factory'] = remote_backing_server
 
58
    result.append((default_wt_format.__class__.__name__ + ',remote', scenario))
40
59
    return result
41
60
 
42
61
 
71
90
    def make_branch_and_tree(self, relpath, format=None):
72
91
        made_control = self.make_bzrdir(relpath, format=format)
73
92
        made_control.create_repository()
74
 
        made_control.create_branch()
75
 
        return self.workingtree_format.initialize(made_control)
 
93
        b = made_control.create_branch()
 
94
        if getattr(self, 'repo_is_remote', False):
 
95
            # If the repo is remote, then we just create a local lightweight
 
96
            # checkout
 
97
            # XXX: This duplicates a lot of Branch.create_checkout, but we know
 
98
            #      we want a) lightweight, and b) a specific WT format. We also
 
99
            #      know that nothing should already exist, etc.
 
100
            t = transport.get_transport(relpath)
 
101
            t.ensure_base()
 
102
            bzrdir_format = self.workingtree_format.get_controldir_for_branch()
 
103
            wt_dir = bzrdir_format.initialize_on_transport(t)
 
104
            branch_ref = wt_dir.set_branch_reference(b)
 
105
            wt = wt_dir.create_workingtree(None, from_branch=branch_ref)
 
106
        else:
 
107
            wt = self.workingtree_format.initialize(made_control)
 
108
        return wt
76
109
 
77
110
    def make_branch_builder(self, relpath, format=None):
78
111
        if format is None: