/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/commands/test_push.py

  • Committer: Vincent Ladeuil
  • Date: 2008-01-02 14:13:55 UTC
  • mto: (3159.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 3161.
  • Revision ID: v.ladeuil+lp@free.fr-20080102141355-k20yfjo6i1dasuny
Fix #179368 by keeping the current range hint on ShortReadvErrors.

* response.py:
(RangeFile._checked_read): Avoid huge buffering when huge seeks
are required.

* _urllib2_wrappers.py:
(Response.finish): Check for end-of-file or we'll loop if the
server lied about Content-Length.

* __init__.py:
(HttpTransportBase._readv): When a ShortReadvError occurs, try
again, staying in multiple range mode and degrades only if the
error occurs again for the same offset.

* test_http_response.py:
(TestRangeFileMultipleRanges): Add a test to exercise the buffer
overflow protection code.

* test_http.py:
(TestMultipleRangeWithoutContentLengthServer): Emulate lighttpd
behavior regarding bug #179368.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007-2010 Canonical Ltd
 
1
# Copyright (C) 2007 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
 
 
17
 
 
18
 
from bzrlib import tests
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
16
 
 
17
 
19
18
from bzrlib.builtins import cmd_push
20
19
from bzrlib.tests.transport_util import TestCaseWithConnectionHookedTransport
21
20
 
28
27
        self.start_logging_connections()
29
28
 
30
29
        cmd = cmd_push()
31
 
        # We don't care about the ouput but 'outf' should be defined
32
 
        cmd.outf = tests.StringIOWrapper()
33
30
        cmd.run(self.get_url('remote'), directory='branch')
34
31
        self.assertEquals(1, len(self.connections))
35
32
 
36
 
    def test_push_onto_stacked(self):
37
 
        self.make_branch_and_tree('base', format='1.9')
38
 
        self.make_branch_and_tree('source', format='1.9')
39
 
 
40
 
        self.start_logging_connections()
41
 
 
42
 
        cmd = cmd_push()
43
 
        cmd.outf = tests.StringIOWrapper()
44
 
        cmd.run(self.get_url('remote'), directory='source',
45
 
                stacked_on=self.get_url('base'))
46
 
        self.assertEqual(1, len(self.connections))