~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/http/_urllib.py

  • Committer: Vincent Ladeuil
  • Date: 2007-10-22 21:19:13 UTC
  • mto: (2961.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 2962.
  • Revision ID: v.ladeuil+lp@free.fr-20071022211913-119445k3qco40sx0
Make hhtp proxy aware of AuthenticationConfig (for password).

* bzrlib/transport/http/_urllib2_wrappers.py:
(Request.__init__): Update the auth dict content documentation.
(extract_credentials, extract_authentication_uri): Deleted.
(PasswordManager): Deleted.
(ProxyHandler.set_proxy): Query AuthenticationConfig for the
password. Simplified.
(AbstractAuthHandler): Looong forgotten feedback review about
_retry_count. The behaviour is not changed.
(AbstractAuthHandler.get_password): Change signature now that the
auth dict contains all relevant information. Simplified.
(DigestAuthHandler.auth_match): Delete gratuitous differences with
BasicAuthHandler.
(Opener.__init__): Get rid of PasswordManager.

* bzrlib/transport/http/_urllib.py:
(HttpTransport_urllib._perform): Replace authuri by its components
in the auth dict.

* bzrlib/transport/ftp.py: 
Register 'aftp' for urlparse (revealed by the host empty test in
_split_url).

* bzrlib/transport/__init__.py:
(ConnectedTransport._split_url): Check that host is not empty. Was
first needed to make a proxy test pass, but revealed more bugs in
the test suite.

* bzrlib/tests/test_transport_implementations.py:
(TransportTests.test__reuse_for): Fix bug revealed by the host
empty test in _split_url.

* bzrlib/tests/test_transport.py:
(TestConnectedTransport.test_connection_sharing_propagate_credentials): 
Fix bug revealed by the host empty test in _split_url.

* bzrlib/tests/test_smart_transport.py:
(HTTPTunnellingSmokeTest._test_bulk_data): Fix bug revealed by the
host empty test in _split_url.

* bzrlib/tests/test_http.py:
(TestHttpTransportUrls.test_invalid_http_urls): ConnectionError
can't be raised here.
(TestHttpProxyWhiteBox._proxied_request): No more PasswordManager,
yeah !
(TestProxyHttpServer): Delete FIXME, tests have been added a long
time ago.

* bzrlib/config.py:
(AuthenticationConfig.get_user): Fix silly copy/paste.
(AuthenticationConfig.get_password): Fix oversight.

Show diffs side-by-side

added added

removed removed

Lines of Context:
75
75
            request.connection = connection
76
76
            (auth, proxy_auth) = self._get_credentials()
77
77
        else:
78
 
            # First request, intialize credentials
 
78
            # First request, intialize credentials.
 
79
            # scheme and realm will be set by the _urllib2_wrappers.AuthHandler
79
80
            user = self._user
80
81
            password = self._password
81
 
            authuri = self._remote_path('.')
82
 
            auth = {'user': user, 'password': password, 'authuri': authuri}
83
 
 
84
 
            if user and password is not None: # '' is a valid password
85
 
                # Make the (user, password) available to urllib2
86
 
                # We default to a realm of None to catch them all.
87
 
                self._opener.password_manager.add_password(None, authuri,
88
 
                                                           user, password)
 
82
            auth = {'host': self._host, 'port': self._port,
 
83
                    'user': user, 'password': password,
 
84
                    'protocol': self._unqualified_scheme,
 
85
                    'path': self._path}
 
86
            # Proxy initialization will be done by first proxied request
89
87
            proxy_auth = {}
90
88
        # Ensure authentication info is provided
91
89
        request.auth = auth