Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
3183585a
Kaydet (Commit)
3183585a
authored
May 12, 2008
tarafından
Georg Brandl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Remove deprecated Tester class from doctest module.
üst
bf086a1e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
215 deletions
+16
-215
doctest.rst
Doc/library/doctest.rst
+10
-17
doctest.py
Lib/doctest.py
+6
-72
test_doctest.py
Lib/test/test_doctest.py
+0
-126
No files found.
Doc/library/doctest.rst
Dosyayı görüntüle @
3183585a
...
...
@@ -163,10 +163,9 @@ prohibit it by passing ``verbose=False``. In either of those cases,
``sys.argv`` is not examined by :func:`testmod` (so passing :option:`-v` or not
has no effect).
Since Python 2.6, there is also a command line shortcut for running
:func:`testmod`. You can instruct the Python interpreter to run the doctest
module directly from the standard library and pass the module name(s) on the
command line::
There is also a command line shortcut for running :func:`testmod`. You can
instruct the Python interpreter to run the doctest module directly from the
standard library and pass the module name(s) on the command line::
python -m doctest -v example.py
...
...
@@ -233,10 +232,9 @@ Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the
:option:`-v` command-line switch or with the optional keyword argument
*verbose*.
Since Python 2.6, there is also a command line shortcut for running
:func:`testfile`. You can instruct the Python interpreter to run the doctest
module directly from the standard library and pass the file name(s) on the
command line::
There is also a command line shortcut for running :func:`testfile`. You can
instruct the Python interpreter to run the doctest module directly from the
standard library and pass the file name(s) on the command line::
python -m doctest -v example.txt
...
...
@@ -888,15 +886,10 @@ Unittest API
------------
As your collection of doctest'ed modules grows, you'll want a way to run all
their doctests systematically. Prior to Python 2.4, :mod:`doctest` had a barely
documented :class:`Tester` class that supplied a rudimentary way to combine
doctests from multiple modules. :class:`Tester` was feeble, and in practice most
serious Python testing frameworks build on the :mod:`unittest` module, which
supplies many flexible ways to combine tests from multiple sources. So, in
Python 2.4, :mod:`doctest`'s :class:`Tester` class is deprecated, and
:mod:`doctest` provides two functions that can be used to create :mod:`unittest`
test suites from modules and text files containing doctests. These test suites
can then be run using :mod:`unittest` test runners::
their doctests systematically. :mod:`doctest` provides two functions that can
be used to create :mod:`unittest` test suites from modules and text files
containing doctests. These test suites can then be run using :mod:`unittest`
test runners::
import unittest
import doctest
...
...
Lib/doctest.py
Dosyayı görüntüle @
3183585a
...
...
@@ -166,10 +166,9 @@ ELLIPSIS_MARKER = '...'
# 4. DocTest Finder -- extracts test cases from objects
# 5. DocTest Runner -- runs test cases
# 6. Test Functions -- convenient wrappers for testing
# 7. Tester Class -- for backwards compatibility
# 8. Unittest Support
# 9. Debugging Support
# 10. Example Usage
# 7. Unittest Support
# 8. Debugging Support
# 9. Example Usage
######################################################################
## 1. Utility Functions
...
...
@@ -1968,72 +1967,7 @@ def run_docstring_examples(f, globs, verbose=False, name="NoName",
runner
.
run
(
test
,
compileflags
=
compileflags
)
######################################################################
## 7. Tester
######################################################################
# This is provided only for backwards compatibility. It's not
# actually used in any way.
class
Tester
:
def
__init__
(
self
,
mod
=
None
,
globs
=
None
,
verbose
=
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
:
raise
TypeError
(
"Tester.__init__: must specify mod or globs"
)
if
mod
is
not
None
and
not
inspect
.
ismodule
(
mod
):
raise
TypeError
(
"Tester.__init__: mod must be a module;
%
r"
%
(
mod
,))
if
globs
is
None
:
globs
=
mod
.
__dict__
self
.
globs
=
globs
self
.
verbose
=
verbose
self
.
optionflags
=
optionflags
self
.
testfinder
=
DocTestFinder
()
self
.
testrunner
=
DocTestRunner
(
verbose
=
verbose
,
optionflags
=
optionflags
)
def
runstring
(
self
,
s
,
name
):
test
=
DocTestParser
()
.
get_doctest
(
s
,
self
.
globs
,
name
,
None
,
None
)
if
self
.
verbose
:
print
(
"Running string"
,
name
)
(
f
,
t
)
=
self
.
testrunner
.
run
(
test
)
if
self
.
verbose
:
print
(
f
,
"of"
,
t
,
"examples failed in string"
,
name
)
return
TestResults
(
f
,
t
)
def
rundoc
(
self
,
object
,
name
=
None
,
module
=
None
):
f
=
t
=
0
tests
=
self
.
testfinder
.
find
(
object
,
name
,
module
=
module
,
globs
=
self
.
globs
)
for
test
in
tests
:
(
f2
,
t2
)
=
self
.
testrunner
.
run
(
test
)
(
f
,
t
)
=
(
f
+
f2
,
t
+
t2
)
return
TestResults
(
f
,
t
)
def
rundict
(
self
,
d
,
name
,
module
=
None
):
import
types
m
=
types
.
ModuleType
(
name
)
m
.
__dict__
.
update
(
d
)
if
module
is
None
:
module
=
False
return
self
.
rundoc
(
m
,
name
,
module
)
def
run__test__
(
self
,
d
,
name
):
import
types
m
=
types
.
ModuleType
(
name
)
m
.
__test__
=
d
return
self
.
rundoc
(
m
,
name
)
def
summarize
(
self
,
verbose
=
None
):
return
self
.
testrunner
.
summarize
(
verbose
)
def
merge
(
self
,
other
):
self
.
testrunner
.
merge
(
other
.
testrunner
)
######################################################################
## 8. Unittest Support
## 7. Unittest Support
######################################################################
_unittest_reportflags
=
0
...
...
@@ -2393,7 +2327,7 @@ def DocFileSuite(*paths, **kw):
return
suite
######################################################################
##
9
. Debugging Support
##
8
. Debugging Support
######################################################################
def
script_from_examples
(
s
):
...
...
@@ -2546,7 +2480,7 @@ def debug(module, name, pm=False):
debug_script
(
testsrc
,
pm
,
module
.
__dict__
)
######################################################################
##
10
. Example Usage
##
9
. Example Usage
######################################################################
class
_TestClass
:
"""
...
...
Lib/test/test_doctest.py
Dosyayı görüntüle @
3183585a
...
...
@@ -2285,132 +2285,6 @@ using the optional keyword argument `encoding`:
>>> doctest.master = None # Reset master.
"""
# old_test1, ... used to live in doctest.py, but cluttered it. Note
# that these use the deprecated doctest.Tester, so should go away (or
# be rewritten) someday.
# Ignore all warnings about the use of class Tester in this module.
# Note that the name of this module may differ depending on how it's
# imported, so the use of __name__ is important.
warnings
.
filterwarnings
(
"ignore"
,
"class Tester"
,
DeprecationWarning
,
__name__
,
0
)
def
old_test1
():
r"""
>>> from doctest import Tester
>>> t = Tester(globs={'x': 42}, verbose=0)
>>> t.runstring(r'''
... >>> x = x * 2
... >>> print(x)
... 42
... ''', 'XYZ')
**********************************************************************
Line 3, in XYZ
Failed example:
print(x)
Expected:
42
Got:
84
TestResults(failed=1, attempted=2)
>>> t.runstring(">>> x = x * 2\n>>> print(x)\n84\n", 'example2')
TestResults(failed=0, attempted=2)
>>> t.summarize()
**********************************************************************
1 items had failures:
1 of 2 in XYZ
***Test Failed*** 1 failures.
TestResults(failed=1, attempted=4)
>>> t.summarize(verbose=1)
1 items passed all tests:
2 tests in example2
**********************************************************************
1 items had failures:
1 of 2 in XYZ
4 tests in 2 items.
3 passed and 1 failed.
***Test Failed*** 1 failures.
TestResults(failed=1, attempted=4)
"""
def
old_test2
():
r"""
>>> from doctest import Tester
>>> t = Tester(globs={}, verbose=1)
>>> test = r'''
... # just an example
... >>> x = 1 + 2
... >>> x
... 3
... '''
>>> t.runstring(test, "Example")
Running string Example
Trying:
x = 1 + 2
Expecting nothing
ok
Trying:
x
Expecting:
3
ok
0 of 2 examples failed in string Example
TestResults(failed=0, attempted=2)
"""
def
old_test3
():
r"""
>>> from doctest import Tester
>>> t = Tester(globs={}, verbose=0)
>>> def _f():
... '''Trivial docstring example.
... >>> assert 2 == 2
... '''
... return 32
...
>>> t.rundoc(_f) # expect 0 failures in 1 example
TestResults(failed=0, attempted=1)
"""
def
old_test4
():
"""
>>> import types
>>> m1 = types.ModuleType('_m1')
>>> m2 = types.ModuleType('_m2')
>>> test_data =
\"
""
... def _f():
... '''>>> assert 1 == 1
... '''
... def g():
... '''>>> assert 2 != 1
... '''
... class H:
... '''>>> assert 2 > 1
... '''
... def bar(self):
... '''>>> assert 1 < 2
... '''
...
\"
""
>>> exec(test_data, m1.__dict__)
>>> exec(test_data, m2.__dict__)
>>> m1.__dict__.update({"f2": m2._f, "g2": m2.g, "h2": m2.H})
Tests that objects outside m1 are excluded:
>>> from doctest import Tester
>>> t = Tester(globs={}, verbose=0)
>>> t.rundict(m1.__dict__, "rundict_test", m1) # f2 and g2 and h2 skipped
TestResults(failed=0, attempted=4)
Once more, not excluding stuff outside m1:
>>> t = Tester(globs={}, verbose=0)
>>> t.rundict(m1.__dict__, "rundict_test_pvt") # None are skipped.
TestResults(failed=0, attempted=8)
The exclusion of objects from outside the designated module is
meant to be invoked automagically by testmod.
>>> doctest.testmod(m1, verbose=False)
TestResults(failed=0, attempted=4)
"""
######################################################################
## Main
######################################################################
...
...
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