[Python-checkins] cpython (3.2): Use test.script_helper in test_pydoc

antoine.pitrou python-checkins at python.org
Fri Jul 15 22:45:20 CEST 2011


http://hg.python.org/cpython/rev/59a536cace4c
changeset: 71367:59a536cace4c
branch: 3.2
user: Antoine Pitrou <solipsis at pitrou.net>
date: Fri Jul 15 22:42:12 2011 +0200
summary:
 Use test.script_helper in test_pydoc
files:
 Lib/test/test_pydoc.py | 24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -15,11 +15,12 @@
 from io import StringIO
 from collections import namedtuple
 from contextlib import contextmanager
+
+from test.script_helper import assert_python_ok
 from test.support import (
 TESTFN, forget, rmtree, EnvironmentVarGuard,
 reap_children, reap_threads, captured_output, captured_stdout, unlink
 )
-
 from test import pydoc_mod
 
 try:
@@ -201,14 +202,14 @@
 # output pattern for module with bad imports
 badimport_pattern = "problem in %s - ImportError: No module named %s"
 
-def run_pydoc(module_name, *args):
+def run_pydoc(module_name, *args, **env):
 """
 Runs pydoc on the specified module. Returns the stripped
 output of pydoc.
 """
- cmd = [sys.executable, pydoc.__file__, " ".join(args), module_name]
- output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
- return output.strip()
+ args = args + (module_name,)
+ rc, out, err = assert_python_ok(pydoc.__file__, *args, **env)
+ return out.strip()
 
 def get_pydoc_html(module):
 "Returns pydoc generated output as html"
@@ -307,19 +308,20 @@
 def newdirinpath(dir):
 os.mkdir(dir)
 sys.path.insert(0, dir)
- yield
- sys.path.pop(0)
- rmtree(dir)
+ try:
+ yield
+ finally:
+ sys.path.pop(0)
+ rmtree(dir)
 
- with newdirinpath(TESTFN), EnvironmentVarGuard() as env:
- env['PYTHONPATH'] = TESTFN
+ with newdirinpath(TESTFN):
 fullmodname = os.path.join(TESTFN, modname)
 sourcefn = fullmodname + os.extsep + "py"
 for importstring, expectedinmsg in testpairs:
 with open(sourcefn, 'w') as f:
 f.write("import {}\n".format(importstring))
 try:
- result = run_pydoc(modname).decode("ascii")
+ result = run_pydoc(modname, PYTHONPATH=TESTFN).decode("ascii")
 finally:
 forget(modname)
 expected = badimport_pattern % (modname, expectedinmsg)
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /