~bzr-pqm/bzr/bzr.dev

1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
1
# Copyright (C) 2005 by 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
import bzrlib.errors
17
from bzrlib.selftest.testrevision import make_branches
18
from bzrlib.trace import mutter
19
from bzrlib.branch import Branch, find_branch
1185.1.33 by Robert Collins
for remote gets fallback from foo.gz to foo in RemoteStore.
20
import gzip
1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
21
import sys
22
import os
23
24
from bzrlib.selftest.HTTPTestUtil import TestCaseWithWebserver
1393 by Robert Collins
reenable remotebranch tests
25
26
from bzrlib.selftest.testfetch import fetch_steps
1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
27
1393.2.1 by John Arbash Meinel
Merged in split-storage-2 branch. Need to cleanup a little bit more still.
28
class TestRemoteBranch(TestCaseWithWebserver):
29
    def test_remote_branch(self):
1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
30
        from bzrlib.fetch import greedy_fetch, has_revision
31
32
        def new_branch(name):
33
            os.mkdir(name)
1185.11.5 by John Arbash Meinel
Merged up-to-date against mainline, still broken.
34
            return Branch.initialize(name)
1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
35
            
36
        #highest indices a: 5, b: 7
37
        br_a, br_b = make_branches()
1185.1.33 by Robert Collins
for remote gets fallback from foo.gz to foo in RemoteStore.
38
        # unpack one of br_a's revision files to test .gz fallbacks
39
        to_unzip = br_a.revision_history()[-1]
40
        to_unzip_source = gzip.open(os.path.join(br_a.base, '.bzr', 
41
                                                  'revision-store',
42
                                                  to_unzip + '.gz'))
43
        content = to_unzip_source.read()
44
        to_unzip_source.close()
45
        os.unlink(os.path.join(br_a.base, '.bzr', 'revision-store',
46
                               to_unzip + '.gz'))
47
        to_unzip_output = open(os.path.join(br_a.base, '.bzr', 
48
                                             'revision-store', to_unzip), 'wb')
49
        to_unzip_output.write(content)
50
        to_unzip_output.close()
51
        
1185.11.5 by John Arbash Meinel
Merged up-to-date against mainline, still broken.
52
        br_rem = Branch.open(self.get_remote_url(br_a.base))
1393 by Robert Collins
reenable remotebranch tests
53
        fetch_steps(self, br_rem, br_b, br_a)
54