Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
98da9d0e
Commit
98da9d0e
authored
Nov 06, 2015
by
Martin Panter
Browse files
Options
Browse Files
Download
Plain Diff
Issue #18010: Merge pydoc web search fix from 3.4 into 3.5
parents
7931be40
9ad0aae6
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
7 deletions
+38
-7
Lib/pydoc.py
Lib/pydoc.py
+3
-1
Lib/test/test_pydoc.py
Lib/test/test_pydoc.py
+32
-6
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/pydoc.py
View file @
98da9d0e
...
...
@@ -2359,7 +2359,9 @@ def _url_handler(url, content_type="text/html"):
with
warnings
.
catch_warnings
():
warnings
.
filterwarnings
(
'ignore'
)
# ignore problems during import
ModuleScanner
().
run
(
callback
,
key
)
def
onerror
(
modname
):
pass
ModuleScanner
().
run
(
callback
,
key
,
onerror
=
onerror
)
# format page
def
bltinlink
(
name
):
...
...
Lib/test/test_pydoc.py
View file @
98da9d0e
...
...
@@ -396,6 +396,13 @@ class PydocBaseTest(unittest.TestCase):
finally
:
pkgutil
.
walk_packages
=
walk_packages
def
call_url_handler
(
self
,
url
,
expected_title
):
text
=
pydoc
.
_url_handler
(
url
,
"text/html"
)
result
=
get_html_title
(
text
)
# Check the title to ensure an unexpected error page was not returned
self
.
assertEqual
(
result
,
expected_title
,
text
)
return
text
class
PydocDocTest
(
unittest
.
TestCase
):
...
...
@@ -704,6 +711,29 @@ class PydocImportTest(PydocBaseTest):
finally
:
os
.
chmod
(
pkgdir
,
current_mode
)
def
test_url_search_package_error
(
self
):
# URL handler search should cope with packages that raise exceptions
pkgdir
=
os
.
path
.
join
(
TESTFN
,
"test_error_package"
)
os
.
mkdir
(
pkgdir
)
init
=
os
.
path
.
join
(
pkgdir
,
"__init__.py"
)
with
open
(
init
,
"wt"
,
encoding
=
"ascii"
)
as
f
:
f
.
write
(
"""raise ValueError("ouch")
\
n
"""
)
with
self
.
restrict_walk_packages
(
path
=
[
TESTFN
]):
# Package has to be importable for the error to have any effect
saved_paths
=
tuple
(
sys
.
path
)
sys
.
path
.
insert
(
0
,
TESTFN
)
try
:
with
self
.
assertRaisesRegex
(
ValueError
,
"ouch"
):
import
test_error_package
# Sanity check
text
=
self
.
call_url_handler
(
"search?key=test_error_package"
,
"Pydoc: Search Results"
)
found
=
(
'<a href="test_error_package.html">'
'test_error_package</a>'
)
self
.
assertIn
(
found
,
text
)
finally
:
sys
.
path
[:]
=
saved_paths
@
unittest
.
skip
(
'causes undesireable side-effects (#20128)'
)
def
test_modules
(
self
):
# See Helper.listmodules().
...
...
@@ -880,16 +910,12 @@ class PydocUrlHandlerTest(PydocBaseTest):
with
self
.
restrict_walk_packages
():
for
url
,
title
in
requests
:
text
=
pydoc
.
_url_handler
(
url
,
"text/html"
)
result
=
get_html_title
(
text
)
self
.
assertEqual
(
result
,
title
,
text
)
self
.
call_url_handler
(
url
,
title
)
path
=
string
.
__file__
title
=
"Pydoc: getfile "
+
path
url
=
"getfile?key="
+
path
text
=
pydoc
.
_url_handler
(
url
,
"text/html"
)
result
=
get_html_title
(
text
)
self
.
assertEqual
(
result
,
title
)
self
.
call_url_handler
(
url
,
title
)
class
TestHelper
(
unittest
.
TestCase
):
...
...
Misc/NEWS
View file @
98da9d0e
...
...
@@ -54,6 +54,9 @@ Core and Builtins
Library
-------
-
Issue
#
18010
:
Fix
the
pydoc
web
server
's module search function to handle
exceptions from importing packages.
- Issue #25554: Got rid of circular references in regular expression parsing.
- Issue #25510: fileinput.FileInput.readline() now returns b'' instead of ''
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment