mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Also deprecated the old Tester class, which is no longer used by anything
except internal tests.
This commit is contained in:
parent
bafb1fed51
commit
3ddd60a83b
2 changed files with 33 additions and 7 deletions
|
@ -377,7 +377,6 @@ def is_private(prefix, base):
|
||||||
Return true iff base begins with an (at least one) underscore, but
|
Return true iff base begins with an (at least one) underscore, but
|
||||||
does not both begin and end with (at least) two underscores.
|
does not both begin and end with (at least) two underscores.
|
||||||
|
|
||||||
>>> import warnings
|
|
||||||
>>> warnings.filterwarnings("ignore", "is_private", DeprecationWarning,
|
>>> warnings.filterwarnings("ignore", "is_private", DeprecationWarning,
|
||||||
... "doctest", 0)
|
... "doctest", 0)
|
||||||
>>> is_private("a.b", "my_func")
|
>>> is_private("a.b", "my_func")
|
||||||
|
@ -397,7 +396,7 @@ def is_private(prefix, base):
|
||||||
"""
|
"""
|
||||||
warnings.warn("is_private is deprecated; it wasn't useful; "
|
warnings.warn("is_private is deprecated; it wasn't useful; "
|
||||||
"examine DocTestFinder.find() lists instead",
|
"examine DocTestFinder.find() lists instead",
|
||||||
DeprecationWarning)
|
DeprecationWarning, stacklevel=2)
|
||||||
return base[:1] == "_" and not base[:2] == "__" == base[-2:]
|
return base[:1] == "_" and not base[:2] == "__" == base[-2:]
|
||||||
|
|
||||||
def _extract_future_flags(globs):
|
def _extract_future_flags(globs):
|
||||||
|
@ -1866,6 +1865,10 @@ def run_docstring_examples(f, globs, verbose=False, name="NoName",
|
||||||
class Tester:
|
class Tester:
|
||||||
def __init__(self, mod=None, globs=None, verbose=None,
|
def __init__(self, mod=None, globs=None, verbose=None,
|
||||||
isprivate=None, optionflags=0):
|
isprivate=None, optionflags=0):
|
||||||
|
|
||||||
|
warnings.warn("class Tester is deprecated; "
|
||||||
|
"use class doctest.DocTestRunner instead",
|
||||||
|
DeprecationWarning, stacklevel=2)
|
||||||
if mod is None and globs is None:
|
if mod is None and globs is None:
|
||||||
raise TypeError("Tester.__init__: must specify mod or globs")
|
raise TypeError("Tester.__init__: must specify mod or globs")
|
||||||
if mod is not None and not _ismodule(mod):
|
if mod is not None and not _ismodule(mod):
|
||||||
|
@ -2403,6 +2406,8 @@ __test__ = {"_TestClass": _TestClass,
|
||||||
# }
|
# }
|
||||||
|
|
||||||
def test1(): r"""
|
def test1(): r"""
|
||||||
|
>>> warnings.filterwarnings("ignore", "class Tester", DeprecationWarning,
|
||||||
|
... "doctest", 0)
|
||||||
>>> from doctest import Tester
|
>>> from doctest import Tester
|
||||||
>>> t = Tester(globs={'x': 42}, verbose=0)
|
>>> t = Tester(globs={'x': 42}, verbose=0)
|
||||||
>>> t.runstring(r'''
|
>>> t.runstring(r'''
|
||||||
|
@ -2437,6 +2442,8 @@ Got: 84
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def test2(): r"""
|
def test2(): r"""
|
||||||
|
>>> warnings.filterwarnings("ignore", "class Tester",
|
||||||
|
... DeprecationWarning, "doctest", 0)
|
||||||
>>> t = Tester(globs={}, verbose=1)
|
>>> t = Tester(globs={}, verbose=1)
|
||||||
>>> test = r'''
|
>>> test = r'''
|
||||||
... # just an example
|
... # just an example
|
||||||
|
@ -2456,6 +2463,8 @@ def test2(): r"""
|
||||||
(0, 2)
|
(0, 2)
|
||||||
"""
|
"""
|
||||||
def test3(): r"""
|
def test3(): r"""
|
||||||
|
>>> warnings.filterwarnings("ignore", "class Tester",
|
||||||
|
... DeprecationWarning, "doctest", 0)
|
||||||
>>> t = Tester(globs={}, verbose=0)
|
>>> t = Tester(globs={}, verbose=0)
|
||||||
>>> def _f():
|
>>> def _f():
|
||||||
... '''Trivial docstring example.
|
... '''Trivial docstring example.
|
||||||
|
@ -2490,6 +2499,8 @@ def test4(): """
|
||||||
|
|
||||||
Tests that objects outside m1 are excluded:
|
Tests that objects outside m1 are excluded:
|
||||||
|
|
||||||
|
>>> warnings.filterwarnings("ignore", "class Tester",
|
||||||
|
... DeprecationWarning, "doctest", 0)
|
||||||
>>> t = Tester(globs={}, verbose=0)
|
>>> t = Tester(globs={}, verbose=0)
|
||||||
>>> t.rundict(m1.__dict__, "rundict_test", m1) # f2 and g2 and h2 skipped
|
>>> t.rundict(m1.__dict__, "rundict_test", m1) # f2 and g2 and h2 skipped
|
||||||
(0, 4)
|
(0, 4)
|
||||||
|
|
17
Misc/NEWS
17
Misc/NEWS
|
@ -12,7 +12,7 @@ What's New in Python 2.4 alpha 3?
|
||||||
Core and builtins
|
Core and builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Subclasses of string can no longer be interned. The semantics of
|
- Subclasses of string can no longer be interned. The semantics of
|
||||||
interning were not clear here -- a subclass could be mutable, for
|
interning were not clear here -- a subclass could be mutable, for
|
||||||
example -- and had bugs. Explicitly interning a subclass of string
|
example -- and had bugs. Explicitly interning a subclass of string
|
||||||
via intern() will raise a TypeError. Internal operations that attempt
|
via intern() will raise a TypeError. Internal operations that attempt
|
||||||
|
@ -24,6 +24,21 @@ Extension modules
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- doctest refactoring continued. See the docs for details. As part of
|
||||||
|
this effort, some old and little- (never?) used features are now
|
||||||
|
deprecated: the Tester class, the module is_private() function, and the
|
||||||
|
isprivate argument to testmod(). The Tester class supplied a feeble
|
||||||
|
"by hand" way to combine multiple doctests, if you knew exactly what
|
||||||
|
you were doing. The newer doctest features for unittest integration
|
||||||
|
already did a better job of that, are stronger now than ever, and the
|
||||||
|
new DocTestRunner class is a saner foundation if you want to do it by
|
||||||
|
hand. The "private name" filtering gimmick was a mistake from the
|
||||||
|
start, and testmod() changed long ago to ignore it by default. If
|
||||||
|
you want to filter out tests, the new DocTestFinder class can be used
|
||||||
|
to return a list of all doctests, and you can filter that list by
|
||||||
|
any computable criteria before passing it to a DocTestRunner instance.
|
||||||
|
|
||||||
|
|
||||||
Tools/Demos
|
Tools/Demos
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue