/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
1752.2.30 by Martin Pool
Start adding a RemoteBzrDir, etc
1
# Copyright (C) 2006 Canonical Ltd
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Tests for remote bzrdir/branch/repo/etc
18
19
These are proxy objects which act on remote objects by sending messages
20
through a smart client.  The proxies are to be created when attempting to open
21
the object given a transport that supports smartserver rpc operations. 
22
"""
23
24
from bzrlib import bzrdir, remote, tests
25
from bzrlib.transport import smart
2018.5.14 by Andrew Bennetts
Move SmartTCPServer to smart/server.py, and SmartServerRequestHandler to smart/request.py.
26
from bzrlib.transport.smart import server
1752.2.30 by Martin Pool
Start adding a RemoteBzrDir, etc
27
from bzrlib.bzrdir import BzrDir, BzrDirFormat
28
from bzrlib.remote import RemoteBzrDir, RemoteBzrDirFormat
29
from bzrlib.branch import Branch
30
31
class BasicRemoteObjectTests(tests.TestCaseInTempDir):
32
33
    def setUp(self):
34
        tests.TestCaseInTempDir.setUp(self)
2018.5.14 by Andrew Bennetts
Move SmartTCPServer to smart/server.py, and SmartServerRequestHandler to smart/request.py.
35
        self.server = server.SmartTCPServer_for_testing()
1752.2.30 by Martin Pool
Start adding a RemoteBzrDir, etc
36
        self.server.setUp()
37
        self.addCleanup(self.server.tearDown)
38
        self.transport = smart.SmartTCPTransport(self.server.get_url())
39
        self.client = self.transport.get_smart_client()
40
        # make a branch that can be opened over the smart transport
1752.2.31 by Martin Pool
[broken] some support for write operations over hpss
41
        self.local_wt = BzrDir.create_standalone_workingtree('.')
1752.2.30 by Martin Pool
Start adding a RemoteBzrDir, etc
42
43
    def test_create_remote_bzrdir(self):
44
        b = remote.RemoteBzrDir(self.transport)
45
        self.assertIsInstance(b, BzrDir)
46
47
    def test_open_remote_branch(self):
48
        # create a standalone branch in the working directory
49
        b = remote.RemoteBzrDir(self.transport)
50
        branch = b.open_branch()
51
1752.2.31 by Martin Pool
[broken] some support for write operations over hpss
52
    def test_remote_repository(self):
53
        b = BzrDir.open_from_transport(self.transport)
54
        repo = b.open_repository()
55
        self.assertFalse(repo.has_revision('23123123'))
56
        self.local_wt.commit(message='test commit', 
57
                             rev_id='rev-1',
58
                             allow_pointless=True)
59
        self.assertTrue(repo.has_revision('rev-1'))
60
61
    def test_remote_branch_revision_history(self):
62
        b = BzrDir.open_from_transport(self.transport).open_branch()
63
        rh = b.revision_history()
64
        self.assertEqual(len(rh), 0)
65
1752.2.30 by Martin Pool
Start adding a RemoteBzrDir, etc
66
    def test_find_correct_format(self):
67
        """Should open a RemoteBzrDir over a SmartTransport"""
68
        fmt = BzrDirFormat.find_format(self.transport)
69
        ## self.assert_(RemoteBzrDirFormat in BzrDirFormat._control_formats)
70
        self.assertIsInstance(fmt, remote.RemoteBzrDirFormat)
71
72
    def test_open_detected_smart_format(self):
73
        fmt = BzrDirFormat.find_format(self.transport)
74
        d = fmt.open(self.transport)
75
        self.assertIsInstance(d, BzrDir)