http transport should tell that authentication is required instead of failing with an HTTPError exception
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Vincent Ladeuil |
Bug Description
If you try to branch/pull from a location that requires authentication you'll get a traceback like the following.
File "/srv/sm-
response = opener.
File "/usr/lib/
response = meth(req, response)
File "/usr/lib/
response = self.parent.error(
File "/usr/lib/
return self._call_
File "/usr/lib/
result = func(*args)
File "/usr/lib/
raise HTTPError(
urllib2.HTTPError: HTTP Error 401: Authorization Required
Related branches
Changed in bzr: | |
assignee: | nobody → v-ladeuil |
Changed in bzr: | |
status: | Fix Committed → Fix Released |
In bzr 0.11.0dev0 you get another traceback: ValueError: unsupported format character '@' (0x40) at index 12
bzr: ERROR: exceptions.
Traceback (most recent call last): unix/vila/ src/bzr. dev/bzrlib/ commands. py", line 611, in run_bzr_ catch_errors unix/vila/ src/bzr. dev/bzrlib/ commands. py", line 573, in run_bzr unix/vila/ src/bzr. dev/bzrlib/ commands. py", line 282, in run_argv_aliases **all_cmd_ args) unix/vila/ src/bzr. dev/bzrlib/ builtins. py", line 660, in run open(from_ location) unix/vila/ src/bzr. dev/bzrlib/ branch. py", line 113, in open BzrDir. open(base, _unsupported) unix/vila/ src/bzr. dev/bzrlib/ bzrdir. py", line 470, in open find_format( t) unix/vila/ src/bzr. dev/bzrlib/ bzrdir. py", line 995, in find_format probe_transport (transport) unix/vila/ src/bzr. dev/bzrlib/ bzrdir. py", line 1005, in probe_transport get(".bzr/ branch- format" ).read( ) unix/vila/ src/bzr. dev/bzrlib/ transport/ http/__ init__. py", line 226, in get unix/vila/ src/bzr. dev/bzrlib/ transport/ http/_urllib. py", line 61, in _get amount= tail_amount) unix/vila/ src/bzr. dev/bzrlib/ transport/ http/_urllib. py", line 85, in _get_url_impl unix/vila/ src/bzr. dev/bzrlib/ transport/ http/__ init__. py", line 72, in extract_auth unix/vila/ src/bzr. dev/bzrlib/ ui/text. py", line 76, in get_password .encode( sys.stdout. encoding, 'replace')
File "/Volumes/
return run_bzr(argv)
File "/Volumes/
ret = run(*run_argv)
File "/Volumes/
return self.run(
File "/Volumes/
br_from = Branch.
File "/Volumes/
control = bzrdir.
File "/Volumes/
format = BzrDirFormat.
File "/Volumes/
return format.
File "/Volumes/
format_string = transport.
File "/Volumes/
code, response_file = self._get(relpath, None)
File "/Volumes/
tail_
File "/Volumes/
url = extract_auth(url, manager)
File "/Volumes/
user=username, host=host)
File "/Volumes/
prompt = (prompt % kwargs)
ValueError: unsupported format character '@' (0x40) at index 12
bzr 0.11.0dev0 on python 2.4.2.final.0 (darwin) home/vila/ bin/bzr' , 'branch', 'http+urllib: //<user> @<host> /pub/web. dav/', 'webdav-local']
arguments: ['/Volumes/
with the attached patch you get prompted for the password at each connection which becomes rapidly boring, but that's another story.