mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Closes #1687: for linkcheck purposes, HTTP 401 Unauthorized is working.
This commit is contained in:
parent
198731f154
commit
2b6f7f4afe
1
CHANGES
1
CHANGES
@ -20,6 +20,7 @@ Bugs fixed
|
|||||||
* #1629: Use VerbatimBorderColor to add frame to code-block in LaTeX
|
* #1629: Use VerbatimBorderColor to add frame to code-block in LaTeX
|
||||||
* On windows, make-mode didn't work on Win32 platform if sphinx was invoked as
|
* On windows, make-mode didn't work on Win32 platform if sphinx was invoked as
|
||||||
``python sphinx-build.py``.
|
``python sphinx-build.py``.
|
||||||
|
* #1687: linkcheck now treats 401 Unauthorized responses as "working".
|
||||||
|
|
||||||
|
|
||||||
Release 1.3b2 (released Dec 5, 2014)
|
Release 1.3b2 (released Dec 5, 2014)
|
||||||
|
@ -122,7 +122,7 @@ class CheckExternalLinksBuilder(Builder):
|
|||||||
elif not (uri[0:5] == 'http:' or uri[0:6] == 'https:'):
|
elif not (uri[0:5] == 'http:' or uri[0:6] == 'https:'):
|
||||||
return 'local', '', 0
|
return 'local', '', 0
|
||||||
elif uri in self.good:
|
elif uri in self.good:
|
||||||
return 'working', '', 0
|
return 'working', 'old', 0
|
||||||
elif uri in self.broken:
|
elif uri in self.broken:
|
||||||
return 'broken', self.broken[uri], 0
|
return 'broken', self.broken[uri], 0
|
||||||
elif uri in self.redirected:
|
elif uri in self.redirected:
|
||||||
@ -166,13 +166,20 @@ class CheckExternalLinksBuilder(Builder):
|
|||||||
req = Request(req_url)
|
req = Request(req_url)
|
||||||
f = opener.open(req, **kwargs)
|
f = opener.open(req, **kwargs)
|
||||||
f.close()
|
f.close()
|
||||||
|
except HTTPError as err:
|
||||||
|
if err.code == 401:
|
||||||
|
# We'll take "Unauthorized" as working.
|
||||||
|
self.good.add(uri)
|
||||||
|
return 'working', ' - unauthorized', 0
|
||||||
|
else:
|
||||||
|
self.broken[uri] = str(err)
|
||||||
|
return 'broken', str(err), 0
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self.broken[uri] = str(err)
|
self.broken[uri] = str(err)
|
||||||
return 'broken', str(err), 0
|
return 'broken', str(err), 0
|
||||||
if f.url.rstrip('/') == req_url.rstrip('/'):
|
if f.url.rstrip('/') == req_url.rstrip('/'):
|
||||||
self.good.add(uri)
|
self.good.add(uri)
|
||||||
return 'working', 'new', 0
|
return 'working', '', 0
|
||||||
else:
|
else:
|
||||||
new_url = f.url
|
new_url = f.url
|
||||||
if hash:
|
if hash:
|
||||||
@ -192,7 +199,7 @@ class CheckExternalLinksBuilder(Builder):
|
|||||||
uri, docname, lineno, status, info, code = result
|
uri, docname, lineno, status, info, code = result
|
||||||
if status == 'unchecked':
|
if status == 'unchecked':
|
||||||
return
|
return
|
||||||
if status == 'working' and info != 'new':
|
if status == 'working' and info == 'old':
|
||||||
return
|
return
|
||||||
if lineno:
|
if lineno:
|
||||||
self.info('(line %4d) ' % lineno, nonl=1)
|
self.info('(line %4d) ' % lineno, nonl=1)
|
||||||
@ -202,7 +209,7 @@ class CheckExternalLinksBuilder(Builder):
|
|||||||
self.info(darkgray('-local- ') + uri)
|
self.info(darkgray('-local- ') + uri)
|
||||||
self.write_entry('local', docname, lineno, uri)
|
self.write_entry('local', docname, lineno, uri)
|
||||||
elif status == 'working':
|
elif status == 'working':
|
||||||
self.info(darkgreen('ok ') + uri)
|
self.info(darkgreen('ok ') + uri + info)
|
||||||
elif status == 'broken':
|
elif status == 'broken':
|
||||||
self.info(red('broken ') + uri + red(' - ' + info))
|
self.info(red('broken ') + uri + red(' - ' + info))
|
||||||
self.write_entry('broken', docname, lineno, uri + ': ' + info)
|
self.write_entry('broken', docname, lineno, uri + ': ' + info)
|
||||||
|
Loading…
Reference in New Issue
Block a user