Rev 2146: (vincent) urllib keepalive improvements in /home/pqm/archives/thelove/bzr/+trunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Nov 21 07:35:44 GMT 2006
------------------------------------------------------------
revno: 2146
revision-id: pqm at pqm.ubuntu.com-20061121073543-06ca44391ff18200
parent: pqm at pqm.ubuntu.com-20061120225523-9a6692bea52007b0
parent: mbp at sourcefrog.net-20061121010852-838b560632acc36c
committer: Canonical.com Patch Queue Manager<pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2006-11-21 07:35:43 +0000
message:
(vincent) urllib keepalive improvements
added:
bzrlib/tests/HttpServer.py httpserver.py-20061012142527-m1yxdj1xazsf8d7s-1
bzrlib/transport/http/_urllib2_wrappers.py _urllib2_wrappers.py-20060913231729-ha9ugi48ktx481ao-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/tests/HTTPTestUtil.py HTTPTestUtil.py-20050914180604-247d3aafb7a43343
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_http.py test_http.py-20060731224648-2eef7ae5yja95rya-1
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/tests/test_fetch.py testfetch.py-20050825090644-f73e07e7dfb1765a
bzrlib/tests/test_http.py testhttp.py-20051018020158-b2eef6e867c514d9
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
bzrlib/tests/test_sftp_transport.py testsftp.py-20051027032739-247570325fec7e7e
bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
bzrlib/tests/test_transport.py testtransport.py-20050718175618-e5cdb99f4555ddce
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
bzrlib/transport/http/_pycurl.py pycurlhttp.py-20060110060940-4e2a705911af77a6
bzrlib/transport/http/_urllib.py _urlgrabber.py-20060113083826-0bbf7d992fbf090c
------------------------------------------------------------
merged: mbp at sourcefrog.net-20061121010852-838b560632acc36c
parent: pqm at pqm.ubuntu.com-20061120225523-9a6692bea52007b0
parent: v.ladeuil+lp at free.fr-20061108082209-e02a8d718670dcb8
committer: mbp at sourcefrog.net
branch nick: keepalive
timestamp: Tue 2006-11-21 12:08:52 +1100
message:
merge urllib keepalive etc
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061108082209-e02a8d718670dcb8
parent: v.ladeuil+lp at free.fr-20061108074430-a9c08d4a475bd97f
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-11-08 09:22:09 +0100
message:
Fix #70803 by catching the httplib exception.
* bzrlib/transport/http/_urllib2_wrappers.py:
(ConnectionHandler.create_connection): Catch httplib.InvalidURL
and translate it into errors.InvalidURL.
* bzrlib/tests/test_http.py:
(TestHttpUrls.test_invalid_http_urls): Test one more invalid URL.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061108074430-a9c08d4a475bd97f
parent: v.ladeuil+lp at free.fr-20061025174710-b8bea783ced1169f
parent: pqm at pqm.ubuntu.com-20061107050730-c5133c11a1b1efc1
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-11-08 08:44:30 +0100
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061025174710-b8bea783ced1169f
parent: v.ladeuil+lp at free.fr-20061025124039-ee626546953e0f95
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-25 19:47:10 +0200
message:
Fix the race condition again and correct some small typos to be in
line with the incremental patches to be proposed.
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport._curl_perform): Why not inverting them ?
* bzrlib/tests/test_http.py:
(TestWallServer.test_http_has): Whatever we try, httplib still may
raise BadStatusLine, which will be translated to
InvalidHttpResponse, so catch that too.
* bzrlib/tests/HTTPTestUtil.py:
(WallRequestHandler.handle_one_request): Previous fix was not
enough, revert it.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061025124039-ee626546953e0f95
parent: v.ladeuil+lp at free.fr-20061025090343-f6f9b3d88c1b987b
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-25 14:40:39 +0200
message:
Fix a race condition that make selftest fail once in a while.
* HTTPTestUtil.py:
(WallRequestHandler.handle_one_request): Be more strict to close
the connection to avoid a race condition with a client able to
read before we really close.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061025090343-f6f9b3d88c1b987b
parent: v.ladeuil+lp at free.fr-20061024103202-6018a2aa4d25c96d
parent: pqm at pqm.ubuntu.com-20061024165011-69d7663639e20a97
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-25 11:03:43 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061024103202-6018a2aa4d25c96d
parent: v.ladeuil+lp at free.fr-20061024090014-55377d873850e11b
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-24 12:32:02 +0200
message:
Small refactoring.
* bzrlib/transport/http/_urllib2_wrappers.py:
(Response._body_ignored_responses): Add 403 and 404.
(AbstractHTTPHandler.retry_or_raise): Isolate the 'retry or raise'
part, do_open is still too big but that helps.
* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib._get): Delete FIXME.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061024090014-55377d873850e11b
parent: v.ladeuil+lp at free.fr-20061024084459-a42bda199905b626
parent: pqm at pqm.ubuntu.com-20061023225407-f38e787ee5e79957
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-24 11:00:14 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061024084459-a42bda199905b626
parent: v.ladeuil+lp at free.fr-20061023110446-1fddf0ae083c0c1d
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-24 10:44:59 +0200
message:
Cosmetic enhancement for bug #41436.
* bzrlib/transport/http/_urllib2_wrappers.py:
(AbstractHTTPHandler.do_open): Handle socket.gaierror specifically.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061023110446-1fddf0ae083c0c1d
parent: v.ladeuil+lp at free.fr-20061023105209-46dd4a74da1130f1
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Mon 2006-10-23 13:04:46 +0200
message:
Cosmetic fix for bug #57644.
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport._raise_curl_http_error): Mention url in aerror
message.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061023105209-46dd4a74da1130f1
parent: v.ladeuil+lp at free.fr-20061019084455-89d30e66e82b1e52
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Mon 2006-10-23 12:52:09 +0200
message:
Cosmetic fixes.
* bzrlib/tests/HttpServer.py:
Fix copyright test detected error.
* NEWS:
Include bug fixes comment at the right place.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061019084455-89d30e66e82b1e52
parent: v.ladeuil+lp at free.fr-20061017140112-8ae6aac456429ccf
parent: pqm at pqm.ubuntu.com-20061019063255-f052e82e226066a0
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-19 10:44:55 +0200
message:
Merge bzr,dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061017140112-8ae6aac456429ccf
parent: v.ladeuil+lp at free.fr-20061017135801-3fb63746e0ea8fcf
parent: pqm at pqm.ubuntu.com-20061016100321-c4951c9fc020dbd0
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-17 16:01:12 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061017135801-3fb63746e0ea8fcf
parent: v.ladeuil+lp at free.fr-20061013155316-163e2bef7fa42490
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-17 15:58:01 +0200
message:
Fix #62276 and #62029 by providing a more robust http range handling.
* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib.__init__): Forget about _accept_ranges, the
base class handles that.
(HttpTransport_urllib._get): Takes _range_hint into account.
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport): Doc fix. Hey ! Urllib had shrunk the gap here !
(PyCurlTransport._get_ranged): Takes _range_hint into account.
* bzrlib/transport/http/__init__.py:
(HttpTransportBase.__init__): Add _range_hint attribute. Give it
to the clones too.
(HttpTransportBase.readv): If we don't get the data we need, try
simpler requests.
(HttpTransportBase.attempted_range_header): Build the range header
taking into account what we had learned from the server
capabilites in previous requests.
(HttpTransportBase.range_header): Small doc fix.
* bzrlib/tests/test_http.py:
(TestPost._test_post_body_is_received): Oops, miss that one during
the merge. UnsupportedProtocol should be prefixed by 'errors.'.
(TestRangeRequestServer.setUp): Use build_tree_contents, not
build_tree or we don't end up with the content we need.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061013155316-163e2bef7fa42490
parent: v.ladeuil+lp at free.fr-20061013105033-7e091ff8dcc0ed0c
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Fri 2006-10-13 17:53:16 +0200
message:
New tests for http range requests handling.
* bzrlib/tests/test_http.py:
(TestRangeRequestServer): New class implementing tests involving
range requests.
(TestSingleRangeRequestServer,
TestSingleRangeRequestServer_urllib,
TestSingleRangeRequestServer_pycurl, TestNoRangeRequestServer,
TestNoRangeRequestServer_urllib,
TestNoRangeRequestServer_pycurl):New classes testing http
transports behavior against bogus range request handling servers.
* bzrlib/tests/__init__.py:
(TestCase.assertListRaises): Gratefully accepted from
bzrlib/tests/test_transport_implementations.py
* bzrlib/tests/test_transport_implementations.py:
(TransportTests.test_has.assertListRaises): Generously given to
bzrlib/tests/__init__.py.
* bzrlib/tests/HTTPTestUtil.py:
(SingleRangeRequestHandler): New class implementing a server that
handle only range requests by bogusly returning only the first
requested range.
(NoRangeRequestHandler): New class implementing a server that
silently ignores range requests.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061013105033-7e091ff8dcc0ed0c
parent: v.ladeuil+lp at free.fr-20061013085334-e216654a3e842ff9
parent: pqm at pqm.ubuntu.com-20061013075108-5846f14f6dfe63b2
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Fri 2006-10-13 12:50:33 +0200
message:
Merge bzr.dev. Including http modifications by "smart" related code
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061013085334-e216654a3e842ff9
parent: v.ladeuil+lp at free.fr-20061013083619-502b7eed9abc3473
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Fri 2006-10-13 10:53:34 +0200
message:
Fix bug #57644 by issuing an explicit error message.
* bzrlib/tests/test_http.py:
Fix some doc strings.
(TestForbiddenServer, TestForbiddenServer_urllib,
TestForbiddenServer_pycurl): Tests for correct handling of 403
error code.
* bzrlib/transport/http/_urllib2_wrappers.py:
Cleanup errors import and uses.
(HTTPDefaultErrorHandler.http_error_default): Handles 403 error code.
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport._raise_curl_http_error): Handles 403 error code.
* bzrlib/tests/HTTPTestUtil.py:
(ForbiddenRequestHandler): New class. An http server where
everything is forbidden.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061013083619-502b7eed9abc3473
parent: v.ladeuil+lp at free.fr-20061012142932-7221fe16d2b48fa3
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Fri 2006-10-13 10:36:19 +0200
message:
Cleaning.
* bzrlib/tests/test_http.py:
Oops, deleted dead code.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061012142932-7221fe16d2b48fa3
parent: v.ladeuil+lp at free.fr-20061012111753-046120af9558c11b
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-12 16:29:32 +0200
message:
Shuffle http related test code. Hopefully it ends up at the right place :)
* bzrlib/tests/HttpServer.py:
New file. bzrlib.tests.ChrootedTestCase use HttpServer. So the
class can't be defined in bzrlib.tests.HTTPUtils because it
creates a circular dependency (bzrlib.tests.HTTPUtils needs to
import bzrlib.tests).
* bzrlib/transport/http/_urllib.py:
Transfer test server definition to bzrlib.tests.HttpServer. Clean
up imports.
* bzrlib/transport/http/_pycurl.py:
Transfer test server definition to bzrlib.tests.HttpServer. Clean
up imports.
* bzrlib/transport/http/__init__.py:
Transfer all test related code to either bzrlib.tests.HttpServer
and bzrlib.tests.HTTPUtils.
Fix all use of TransportNotPossible and InvalidURL by prefixing it
by 'errors.' (this seems to be the preferred way in the rest of
bzr).
Get rid of unused imports.
* bzrlib/tests/test_transport.py:
(ReadonlyDecoratorTransportTest.test_local_parameters,
FakeNFSDecoratorTests.test_http_parameters): Use HttpServer from
bzrlib.tests.HttpServer instead of bzrlib.transport.http.
* bzrlib/tests/test_sftp_transport.py:
(set_test_transport_to_sftp): Use HttpServer from
bzrlib.tests.HttpServer instead of bzrlib.transport.http.
* bzrlib/tests/test_selftest.py:
(TestTestCaseWithTransport.test_get_readonly_url_http): Use
HttpServer from bzrlib.tests.HttpServer instead of
bzrlib.transport.http.
* bzrlib/tests/test_repository.py:
Does *not* use HttpServer.
* bzrlib/tests/test_http.py:
Build on top of bzrlib.tests.HttpServer and bzrlib.tests.HTTPUtils
instead of bzrlib.transport.http.
* bzrlib/tests/test_bzrdir.py:
(ChrootedTests.setUp): Use HttpServer from bzrlib.tests.HttpServer
instead of bzrlib.transport.http.
* bzrlib/tests/branch_implementations/test_http.py:
(HTTPBranchTests.setUp): Use HttpServer from bzrlib.tests.HttpServer
instead of bzrlib.transport.http.
* bzrlib/tests/branch_implementations/test_branch.py:
(ChrootedTests.setUp): Use HttpServer from bzrlib.tests.HttpServer
instead of bzrlib.transport.http.
* bzrlib/tests/__init__.py:
(ChrootedTestCase.setUp): Use HttpServer from
bzrlib.tests.HttpServer instead of bzrlib.transport.http.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061012111753-046120af9558c11b
parent: v.ladeuil+lp at free.fr-20061012073329-854608f3287dcdd1
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-12 13:17:53 +0200
message:
Trivial cleaning.
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport._curl_perform): Delete obsolete comment.
* bzrlib/transport/http/__init__.py:
(HttpTransportBase.__init__): Delete obsolete comment.
(TestingHTTPRequestHandler.get_single_range): Fix typo in header
name.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061012073329-854608f3287dcdd1
parent: v.ladeuil+lp at free.fr-20061006170758-dcfe0c203afa330c
parent: pqm at pqm.ubuntu.com-20061012011808-6bdb1458abfdc13a
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-12 09:33:29 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061006170758-dcfe0c203afa330c
parent: v.ladeuil+lp at free.fr-20061005095728-b4912c27b3d3baec
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Fri 2006-10-06 19:07:58 +0200
message:
Implements Range header handling for GET requests. Fix a test.
* bzrlib/transport/http/__init__.py:
(TestingHTTPRequestHandler.parse_ranges,
TestingHTTPRequestHandler.send_range_content,
TestingHTTPRequestHandler.get_single_range,
TestingHTTPRequestHandler.get_multiple_ranges,
TestingHTTPRequestHandler.do_GET): New methods. Implements the Range
header handling for GET request.
* bzrlib/tests/test_transport_implementations.py:
(TransportTests.test_readv): Add a test with a single range.
* bzrlib/tests/test_fetch.py:
(TestHttpFetch._count_log_matches): GET can succeeds with a 206 code.
(TestHttpFetch.test_weaves_are_retrieved_once): log_pattern was not
used here.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061005095728-b4912c27b3d3baec
parent: v.ladeuil+lp at free.fr-20061005093155-bb311bc6ebf11994
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-05 11:57:28 +0200
message:
Trivial cleanup.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061005093155-bb311bc6ebf11994
parent: v.ladeuil+lp at free.fr-20061005092948-585bd3d003d5db82
parent: pqm at pqm.ubuntu.com-20061005041829-4f10f01c0c5ba3ac
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-05 11:31:55 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061005092948-585bd3d003d5db82
parent: v.ladeuil+lp at free.fr-20061004164821-5c058eb8f6ec9d16
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Thu 2006-10-05 11:29:48 +0200
message:
Test protocol version in http responses.
* bzrlib/transport/http/_urllib2_wrappers.py:
(AbstractHTTPHandler.do_open): Catch httplib.UnknownProtocol. Add some
comments.
* bzrlib/transport/http/__init__.py:
(BadProtocolRequestHandler): New class testing protocol validity.
* bzrlib/tests/test_http.py:
(TestWallServer, TestBadStatusServer.create_transport_readonly_server,
TestInvalidStatusServer): Use a readonly server.
(TestBadProtocolServer, TestBadProtocolServer_urllib): New classes
testing protocol version validity.
* bzrlib/tests/__init__.py:
(TestCaseWithMemoryTransport.create_transport_readonly_server): New
hook allowing daughter classes to create specialized servers.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061004164821-5c058eb8f6ec9d16
parent: v.ladeuil+lp at free.fr-20061004164523-75d31921c8e6c62e
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-04 18:48:21 +0200
message:
Protect bad http status tests against broken pipes.
* bzrlib/transport/http/__init__.py:
(BadStatusRequestHandler.parse_request): Catch broken pipe.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061004164523-75d31921c8e6c62e
parent: v.ladeuil+lp at free.fr-20061004144205-6a7496410b893ab1
parent: pqm at pqm.ubuntu.com-20061004081307-413acd85912dbab0
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-04 18:45:23 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061004144205-6a7496410b893ab1
parent: v.ladeuil+lp at free.fr-20061004094003-4a058914ddf1401a
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-04 16:42:05 +0200
message:
Add tests against erroneous http status lines.
* bzrlib/transport/http/_urllib2_wrappers.py:
(Response.begin): In some subtle cases we MUST not try to read the
response body.
(AbstractHTTPConnection.strict): Do not try to support HTTP/0.9 or we
may fail to detect bad status lines.
(AbstractHTTPHandler.do_open): Translate BasStatusLine into
InvalidHttpResponse and don't retry in that case.
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport.has):
* bzrlib/transport/http/__init__.py:
(BadStatusRequestHandler, InvalidStatusRequestHandler): New classes.
* bzrlib/tests/test_http.py:
(TestBadStatusServer.create_transport_server,
TestBadStatusServer_urllib, TestBadStatusServer_pycurl,
TestInvalidStatusServer, TestInvalidStatusServer_urllib,
TestInvalidStatusServer_pycurl): New classes.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061004094003-4a058914ddf1401a
parent: v.ladeuil+lp at free.fr-20061003141947-c6bd6f8878e09f27
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-10-04 11:40:03 +0200
message:
Better design for bogus servers. Both urllib and pycurl pass tests.
* bzrlib/transport/http/_urllib2_wrappers.py:
(ConnectionHandler.create_connection): Raise InvalidURL instead of
urllib2.URLError.
(AbstractHTTPHandler.http_request): New method to override default
urllib2 headers.
* bzrlib/tests/test_http.py:
(TestHttpConnections): Renamed from HttpMixins. Note that this class
should be inherited by a class that also inherit from
TestCaseWithWebserver, this was already the case, but that's now
mentioned in the doc string.
(TestHttpConnections.test_has_on_bogus_host): Moved from
TestHttpConnections_urllib to TestHttpConnections so that pycurl get
tested too.
(TestWithTransport_pycurl): New class to share the pycurl dependency
testing when creating test cases for pycurl.
(TestHttpConnections_urllib, TestHttpConnections_pycurl): Simplified
accordingly.
(TestWallServer, TestWallServer_urllib, TestWallServer_pycurl): Use the
same pattern as TestHttpConnections to share tests between urllib and
pycurl.
* bzrlib/errors.py:
(ConnectionError): Yes, the 'Connection error' part seems redundant
with the leading ConnectionError in the message, but so far, at least
one test (SSHVendorBadConnection.test_bad_connection_ssh) relies on it
and I don't know if suppressing this redundancy is the best way to
solve the problem.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061003141947-c6bd6f8878e09f27
parent: v.ladeuil+lp at free.fr-20061003141808-934f801ccbdb2f55
parent: pqm at pqm.ubuntu.com-20061002004310-6e09ddd7fd28f71c
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-03 16:19:47 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061003141808-934f801ccbdb2f55
parent: v.ladeuil+lp at free.fr-20060925072900-1d3c53855a28aa31
parent: v.ladeuil+lp at free.fr-20061001191254-7a6886c1cf46a1c6
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Tue 2006-10-03 16:18:08 +0200
message:
Merge bzr.urllib.keepalive
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061001191254-7a6886c1cf46a1c6
parent: v.ladeuil+lp at free.fr-20061001190803-04ca220a1cbc15f3
parent: pqm at pqm.ubuntu.com-20060929205729-0ee3252a234189f0
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.urllib.keepalive
timestamp: Sun 2006-10-01 21:12:54 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20061001190803-04ca220a1cbc15f3
parent: v.ladeuil+lp at free.fr-20060924214355-9068e9a43ff9ac38
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.urllib.keepalive
timestamp: Sun 2006-10-01 21:08:03 +0200
message:
Better (but still incomplete) design for bogus servers.
* bzrlib/transport/http/_urllib2_wrappers.py:
(AbstractHTTPHandler): Add 'Accept: */*' again to default headers
until I fully understand why and when it's needed or not (curl add
it if no Accept header is present).
* bzrlib/transport/http/_pycurl.py:
(PyCurlTransport._curl_perform): CURLE_GOT_NOTHING may be
considered as a ConnectionError, inspection of curl code reveals
that the case is sufficiently rare and low level related to not be
considered an http error per se.
* bzrlib/transport/http/__init__.py:
(WallHttpServer): Deleted.
* bzrlib/tests/test_http.py:
(TestBogusServer): Factor out the tests common to the bogus
servers.
* bzrlib/tests/__init__.py:
(TestCaseWithTransport.create_transport_server,
TestCaseWithTransport.create_transport_readonly_server): New
methods, allows test cases to specify the transport servers
without defining useless classes.
(TestCaseWithTransport.get_readonly_server): Use
create_transport_readonly_server.
(TestCaseWithTransport.get_server): Use create_transport_server.
* bzrlib/tests/HTTPTestUtil.py:
(TestCaseWithWebserver): Fix typo in doc string.
(TestCaseWithWallserver): Deleted.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060925072900-1d3c53855a28aa31
parent: v.ladeuil+lp at free.fr-20060920151639-744cac2535cbe84d
parent: v.ladeuil+lp at free.fr-20060924214355-9068e9a43ff9ac38
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Mon 2006-09-25 09:29:00 +0200
message:
Merge bzr.urllib.keepalive
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060924214355-9068e9a43ff9ac38
parent: v.ladeuil+lp at free.fr-20060924214027-d5e363af4c38cc93
parent: pqm at pqm.ubuntu.com-20060924185311-aa722847c6e4c74c
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.urllib.keepalive
timestamp: Sun 2006-09-24 23:43:55 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060924214027-d5e363af4c38cc93
parent: v.ladeuil+lp at free.fr-20060917081600-8ab9edf1bb2ff400
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.urllib.keepalive
timestamp: Sun 2006-09-24 23:40:27 +0200
message:
Test ConnectionError exceptions.
* bzrlib/transport/http/_urllib2_wrappers.py
(AbstractHTTPConnection.getresponse): Not needed anymore.
(AbstractHTTPHandler.do_open): Better exception handling.
(HTTPBasicAuthHandler): Not yet implemented.
* bzrlib/transport/http/_urllib.py:
Fix spurious spaces.
* bzrlib/transport/http/__init__.py:
(WallRequestHandler, WallHttpServer): A http server closing
connections as soon as a request arrives.
* bzrlib/tests/test_http.py:
(TestWallServer): Check exceptions during connection.
* bzrlib/tests/HTTPTestUtil.py:
(TestCaseWithWallserver): New class. A server which close
connections as soon as possible.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060920151639-744cac2535cbe84d
parent: v.ladeuil+lp at free.fr-20060917081600-8ab9edf1bb2ff400
parent: pqm at pqm.ubuntu.com-20060920135917-9b085ce8e1ba0d18
committer: v.ladeuil+lp at free.fr
branch nick: bzr.urllib.keepalive
timestamp: Wed 2006-09-20 17:16:39 +0200
message:
Merge from bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060917081600-8ab9edf1bb2ff400
parent: v.ladeuil+lp at free.fr-20060917081038-fe924dd78c0944f7
parent: pqm at pqm.ubuntu.com-20060916140354-1a9932f525bb7182
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.urllib.keepalive
timestamp: Sun 2006-09-17 10:16:00 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060917081038-fe924dd78c0944f7
parent: v.ladeuil+lp at free.fr-20060916144646-7952cef9960f90c2
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.urllib.keepalive
timestamp: Sun 2006-09-17 10:10:38 +0200
message:
Takes jam's remarks into account when possible, add TODOs for the rest.
* bzrlib/transport/http/_urllib2_wrappers.py:
(ConnectionHandler): No more need to attempt caching, the cloning
process is enough.
(Opener): Use one password manager by instance.
(HTTPDefaultErrorHandler.http_error_default): Oops, provide right
parameters to InvalidHttpResponse.
* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib.__init__): An Opener is created for new
transports only, cloned transports reuse it.
* bzrlib/transport/http/__init__.py:
Add a TODO.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060916144646-7952cef9960f90c2
parent: v.ladeuil+lp at free.fr-20060916143536-891a1c6ac0613450
parent: john at arbash-meinel.com-20060915214016-1ddfd21056a5e711
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Sat 2006-09-16 16:46:46 +0200
message:
Merge jam's cleanup
------------------------------------------------------------
merged: john at arbash-meinel.com-20060915214016-1ddfd21056a5e711
parent: v.ladeuil+lp at free.fr-20060915090221-af6bc3d947b03ec9
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: bzr.urllib.keepalive
timestamp: Fri 2006-09-15 16:40:16 -0500
message:
Cleanup of urllib functions
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060916143536-891a1c6ac0613450
parent: v.ladeuil+lp at free.fr-20060915090221-af6bc3d947b03ec9
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Sat 2006-09-16 16:35:36 +0200
message:
Better handling of passwords (user should be queried only once).
* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib.ask_password): Avoid requesting password
from user by querying the password manager for already typed
password.
* bzrlib/transport/http/_urllib2_wrappers.py:
(Response, Response.begin): Makes the body ignored responses
extensible by daughter classes.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060915090221-af6bc3d947b03ec9
parent: v.ladeuil+lp at free.fr-20060915065912-413c9a47708da63f
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Fri 2006-09-15 11:02:21 +0200
message:
Connection sharing between cloned transports.
* bzrlib/transport/http/__init__.py:
(HttpTransportBase.clone): <cough> We can't decide for the class
daughters how the cloning occurs. We just give them the hint.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060915065912-413c9a47708da63f
parent: v.ladeuil+lp at free.fr-20060915065708-d3b21fd1735056ab
parent: pqm at pqm.ubuntu.com-20060915031026-bc8ed55c218d9d30
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Fri 2006-09-15 08:59:12 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060915065708-d3b21fd1735056ab
parent: v.ladeuil+lp at free.fr-20060914225535-e035b00b930fec1e
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Fri 2006-09-15 08:57:08 +0200
message:
Fix user handling.
* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib.__init__): Add (commented out) some traces
for transport creation avoiding cloning process.
(HttpTransport_urllib._perform): Don't handle user if there is
none, duh.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060914225535-e035b00b930fec1e
parent: v.ladeuil+lp at free.fr-20060914225342-44ea70fa1ad3433e
parent: pqm at pqm.ubuntu.com-20060914085936-0fb09526ebcf67d2
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Fri 2006-09-15 00:55:35 +0200
message:
Merge bzr.dev
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060914225342-44ea70fa1ad3433e
parent: v.ladeuil+lp at free.fr-20060913233907-6f23b59df5fc6105
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Fri 2006-09-15 00:53:42 +0200
message:
Implements a BasicAuthManager.
* bzrlib/transport/http/_urllib2_wrappers.py:
(Response.begin): Calls httplib.HTTPResponse.begin directly. 401
have a response body too.
(AbstractHTTPConnection.getresponse): Calls
httplib.HTTPConnection.getresponse directly.
(Request.__init__): Acquire user and password from url.
(Request.extract_auth): New method.
(Response.begin, Opener.__init__): Use an
urllib2.HTTPBasicAuthHandler.
* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib.ask_password): New method.
(HttpTransport_urllib.__init__): Propagate user and pasword.
(HttpTransport_urllib._perform): Acquire/propagate user and password.
------------------------------------------------------------
merged: v.ladeuil+lp at free.fr-20060913233907-6f23b59df5fc6105
parent: pqm at pqm.ubuntu.com-20060913022700-feca914a6d5495f2
committer: vila <v.ladeuil+lp at free.fr>
branch nick: bzr.webdav
timestamp: Thu 2006-09-14 01:39:07 +0200
message:
Connection sharing, with redirection. without authentification.
* bzrlib/transport/http/_urllib.py:
(Request): Deleted. The _urllib2 version is shiniest.
(HttpTransport_urllib): Share connections.
(HttpTransport_urllib._perform): New method.
(HttpTransport_urllib._get): Takes the _urllib2_wrappers into
account.
(HttpTransport_urllib._get_url_impl): Deleted.
(HttpTransport_urllib._head): New method.
(HttpTransport_urllib.has): Takes the _urllib2_wrappers into
account.
(HttpTransport_urllib.copy_to, HttpTransport_urllib.move,
HttpTransport_urllib.delete): Deleted. Were carbon copies of
HttpTransportBase.
* bzrlib/tests/test_http.py:
(TestHttpConnections_urllib.test_has_on_bogus_host): The timeout
was too high, at least on Mac OS X 10.3 the test was taking a
whole *minute*. Also, the new implementation raise a nice
ConnectionError.
* bzrlib/errors.py:
(ConnectionError): Don't don't repeat ConnectionError.
* bzrlib/transport/http/_urllib2_wrappers.py:
New file. Wrappers around urllib2 framework.
More information about the bazaar-commits
mailing list