~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
28
class TestFetch(TestCaseWithWebserver):
29
    def runTest(self):
1392 by Robert Collins
reinstate testfetch test case
30
        from bzrlib.fetch import greedy_fetch
31
        from bzrlib.selftest.testfetch import has_revision
1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
32
33
        def new_branch(name):
34
            os.mkdir(name)
1185.2.19 by Lalo Martins
made tests pass again, after merge from integration
35
            return Branch.initialize(name)
1185.1.18 by Robert Collins
Lalo Martins remotebranch patch
36
            
37
        #highest indices a: 5, b: 7
38
        br_a, br_b = make_branches()
1185.1.33 by Robert Collins
for remote gets fallback from foo.gz to foo in RemoteStore.
39
        # unpack one of br_a's revision files to test .gz fallbacks
40
        to_unzip = br_a.revision_history()[-1]
41
        to_unzip_source = gzip.open(os.path.join(br_a.base, '.bzr', 
42
                                                  'revision-store',
43
                                                  to_unzip + '.gz'))
44
        content = to_unzip_source.read()
45
        to_unzip_source.close()
46
        os.unlink(os.path.join(br_a.base, '.bzr', 'revision-store',
47
                               to_unzip + '.gz'))
48
        to_unzip_output = open(os.path.join(br_a.base, '.bzr', 
49
                                             'revision-store', to_unzip), 'wb')
50
        to_unzip_output.write(content)
51
        to_unzip_output.close()
52
        
1185.2.19 by Lalo Martins
made tests pass again, after merge from integration
53
        br_rem = Branch.open(self.get_remote_url(br_a.base))
1393 by Robert Collins
reenable remotebranch tests
54
        fetch_steps(self, br_rem, br_b, br_a)
55