Skip to content

Commit 83ffd62

Browse files
committed
tests: test behavior with unittest.SkipTest / teardown
Ref: #772
1 parent ee7858a commit 83ffd62

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

tests/test_unittest.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,3 +495,44 @@ def test_method(self):
495495
result = django_testdir.runpytest_subprocess("--pdb")
496496
result.stdout.fnmatch_lines(["*= 1 passed in *"])
497497
assert result.ret == 0
498+
499+
500+
def test_teardown_behavior(django_testdir):
501+
django_testdir.create_test_module(
502+
"""
503+
from unittest import SkipTest
504+
from django.test import TestCase
505+
506+
post_teardown_count = 0
507+
508+
class TestClass1(TestCase):
509+
510+
def _post_teardown(self):
511+
global post_teardown_count
512+
post_teardown_count += 1
513+
514+
def test_1_skip(self):
515+
self.addCleanup(lambda: print("clean1"))
516+
assert post_teardown_count == 0
517+
raise SkipTest("skipped!")
518+
519+
def test_2_pass(self):
520+
self.addCleanup(lambda: print("clean2"))
521+
assert post_teardown_count == 1
522+
523+
def test_3_fail(self):
524+
self.addCleanup(lambda: print("clean3"))
525+
assert post_teardown_count == 2
526+
assert 0, "fail"
527+
"""
528+
)
529+
530+
result = django_testdir.runpytest_subprocess("--pdb", "-s")
531+
result.stdout.fnmatch_lines([
532+
"tpkg/test_the_test.py clean1",
533+
"sclean2",
534+
".clean3",
535+
"F",
536+
"*> entering PDB >*",
537+
"*= 1 failed, 1 passed, 1 skipped in *",
538+
])

0 commit comments

Comments
 (0)