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
176a56c6
Kaydet (Commit)
176a56c6
authored
May 25, 2009
tarafından
Benjamin Peterson
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
make class skipping decorators the same as skipping every test of the class
This removes ClassTestSuite and a good bit of hacks.
üst
a7724e59
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
64 deletions
+26
-64
unittest.rst
Doc/library/unittest.rst
+5
-21
test_unittest.py
Lib/test/test_unittest.py
+9
-8
unittest.py
Lib/unittest.py
+9
-35
NEWS
Misc/NEWS
+3
-0
No files found.
Doc/library/unittest.rst
Dosyayı görüntüle @
176a56c6
...
...
@@ -62,8 +62,7 @@ so a new fixture is created for each test.
Test suites are implemented by the :class:`TestSuite` class. This class allows
individual tests and test suites to be aggregated; when the suite is executed,
all tests added directly to the suite and in "child" test suites are run. A
:class:`ClassTestSuite` contains the test cases of a class.
all tests added directly to the suite and in "child" test suites are run.
A test runner is an object that provides a single method,
:meth:`~TestRunner.run`, which accepts a :class:`TestCase` or :class:`TestSuite`
...
...
@@ -1057,11 +1056,10 @@ Grouping tests
test suites that will be used to build the suite initially. Additional methods
are provided to add test cases and suites to the collection later on.
:class:`TestSuite` (including :class:`ClassTestSuite`) objects behave much
like :class:`TestCase` objects, except they do not actually implement a test.
Instead, they are used to aggregate tests into groups of tests that should be
run together. Some additional methods are available to add tests to
:class:`TestSuite` instances:
:class:`TestSuite` objects behave much like :class:`TestCase` objects, except
they do not actually implement a test. Instead, they are used to aggregate
tests into groups of tests that should be run together. Some additional
methods are available to add tests to :class:`TestSuite` instances:
.. method:: TestSuite.addTest(test)
...
...
@@ -1118,14 +1116,6 @@ Grouping tests
is invoked by a :class:`TestRunner` rather than by the end-user test harness.
.. class:: ClassTestSuite(tests, collected_from)
This subclass of :class:`TestSuite` repesents an aggregation of individuals
tests from one :class:`TestCase` class. *tests* is an iterable of
:class:`TestCase` instances created from the class. *collected_from* is the
class they came from.
Loading and running tests
~~~~~~~~~~~~~~~~~~~~~~~~~
...
...
@@ -1229,12 +1219,6 @@ Loading and running tests
This affects all the :meth:`loadTestsFrom\*` methods.
.. attribute:: classSuiteClass
Callable object that constructs a test suite for the tests cases from one
class. The default value is :class:`ClassTestSuite`.
.. class:: TestResult
This class is used to compile information about which tests have succeeded
...
...
Lib/test/test_unittest.py
Dosyayı görüntüle @
176a56c6
...
...
@@ -107,7 +107,7 @@ class TestHashing(object):
# List subclass we can add attributes to.
class
MyClassSuite
(
list
):
def
__init__
(
self
,
tests
,
klass
):
def
__init__
(
self
,
tests
):
super
(
MyClassSuite
,
self
)
.
__init__
(
tests
)
...
...
@@ -1262,7 +1262,7 @@ class Test_TestLoader(TestCase):
tests
=
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
loader
=
unittest
.
TestLoader
()
loader
.
classSuiteClass
=
MyClassSuite
loader
.
suiteClass
=
list
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
# It is implicit in the documentation for TestLoader.suiteClass that
...
...
@@ -1275,7 +1275,7 @@ class Test_TestLoader(TestCase):
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
tests
=
[
unittest
.
ClassTestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)],
Foo
)
]
tests
=
[
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
]
loader
=
unittest
.
TestLoader
()
loader
.
suiteClass
=
list
...
...
@@ -1294,7 +1294,7 @@ class Test_TestLoader(TestCase):
tests
=
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
loader
=
unittest
.
TestLoader
()
loader
.
classSuiteClass
=
MyClassSuite
loader
.
suiteClass
=
list
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests
)
# It is implicit in the documentation for TestLoader.suiteClass that
...
...
@@ -1307,7 +1307,7 @@ class Test_TestLoader(TestCase):
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
tests
=
[
unittest
.
ClassTestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)],
Foo
)
]
tests
=
[
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
]
loader
=
unittest
.
TestLoader
()
loader
.
suiteClass
=
list
...
...
@@ -2871,7 +2871,7 @@ class Test_TestSkipping(TestCase):
def
test_dont_skip
(
self
):
pass
test_do_skip
=
Foo
(
"test_skip"
)
test_dont_skip
=
Foo
(
"test_dont_skip"
)
suite
=
unittest
.
ClassTestSuite
([
test_do_skip
,
test_dont_skip
],
Foo
)
suite
=
unittest
.
TestSuite
([
test_do_skip
,
test_dont_skip
]
)
events
=
[]
result
=
LoggingResult
(
events
)
suite
.
run
(
result
)
...
...
@@ -2890,9 +2890,10 @@ class Test_TestSkipping(TestCase):
record
.
append
(
1
)
record
=
[]
result
=
unittest
.
TestResult
()
suite
=
unittest
.
ClassTestSuite
([
Foo
(
"test_1"
)],
Foo
)
test
=
Foo
(
"test_1"
)
suite
=
unittest
.
TestSuite
([
test
])
suite
.
run
(
result
)
self
.
assertEqual
(
result
.
skipped
,
[(
suite
,
"testing"
)])
self
.
assertEqual
(
result
.
skipped
,
[(
test
,
"testing"
)])
self
.
assertEqual
(
record
,
[])
def
test_expected_failure
(
self
):
...
...
Lib/unittest.py
Dosyayı görüntüle @
176a56c6
...
...
@@ -59,7 +59,7 @@ import warnings
##############################################################################
# Exported classes and functions
##############################################################################
__all__
=
[
'TestResult'
,
'TestCase'
,
'TestSuite'
,
'ClassTestSuite'
,
__all__
=
[
'TestResult'
,
'TestCase'
,
'TestSuite'
,
'TextTestRunner'
,
'TestLoader'
,
'FunctionTestCase'
,
'main'
,
'defaultTestLoader'
,
'SkipTest'
,
'skip'
,
'skipIf'
,
'skipUnless'
,
'expectedFailure'
]
...
...
@@ -458,6 +458,13 @@ class TestCase(object):
self
.
_resultForDoCleanups
=
result
result
.
startTest
(
self
)
if
getattr
(
self
.
__class__
,
"__unittest_skip__"
,
False
):
# If the whole class was skipped.
try
:
result
.
addSkip
(
self
,
self
.
__class__
.
__unittest_skip_why__
)
finally
:
result
.
stopTest
(
self
)
return
testMethod
=
getattr
(
self
,
self
.
_testMethodName
)
try
:
success
=
False
...
...
@@ -1110,37 +1117,6 @@ class TestSuite(object):
test
.
debug
()
class
ClassTestSuite
(
TestSuite
):
"""
Suite of tests derived from a single TestCase class.
"""
def
__init__
(
self
,
tests
,
class_collected_from
):
super
(
ClassTestSuite
,
self
)
.
__init__
(
tests
)
self
.
collected_from
=
class_collected_from
def
id
(
self
):
module
=
getattr
(
self
.
collected_from
,
"__module__"
,
None
)
if
module
is
not
None
:
return
"{0}.{1}"
.
format
(
module
,
self
.
collected_from
.
__name__
)
return
self
.
collected_from
.
__name__
def
run
(
self
,
result
):
if
getattr
(
self
.
collected_from
,
"__unittest_skip__"
,
False
):
# ClassTestSuite result pretends to be a TestCase enough to be
# reported.
result
.
startTest
(
self
)
try
:
result
.
addSkip
(
self
,
self
.
collected_from
.
__unittest_skip_why__
)
finally
:
result
.
stopTest
(
self
)
else
:
result
=
super
(
ClassTestSuite
,
self
)
.
run
(
result
)
return
result
shortDescription
=
id
class
FunctionTestCase
(
TestCase
):
"""A test case that wraps a test function.
...
...
@@ -1213,7 +1189,6 @@ class TestLoader(object):
testMethodPrefix
=
'test'
sortTestMethodsUsing
=
cmp
suiteClass
=
TestSuite
classSuiteClass
=
ClassTestSuite
def
loadTestsFromTestCase
(
self
,
testCaseClass
):
"""Return a suite of all tests cases contained in testCaseClass"""
...
...
@@ -1223,8 +1198,7 @@ class TestLoader(object):
testCaseNames
=
self
.
getTestCaseNames
(
testCaseClass
)
if
not
testCaseNames
and
hasattr
(
testCaseClass
,
'runTest'
):
testCaseNames
=
[
'runTest'
]
suite
=
self
.
classSuiteClass
(
map
(
testCaseClass
,
testCaseNames
),
testCaseClass
)
suite
=
self
.
suiteClass
(
map
(
testCaseClass
,
testCaseNames
))
return
suite
def
loadTestsFromModule
(
self
,
module
):
...
...
Misc/NEWS
Dosyayı görüntüle @
176a56c6
...
...
@@ -302,6 +302,9 @@ Core and Builtins
Library
-------
- In unittest, using a skipping decorator on a class is now equivalent to
skipping every test on the class. The ClassTestSuite class has been removed.
- Issue #6050: Don't fail extracting a directory from a zipfile if
the directory already exists.
...
...
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