@@ -684,7 +684,7 @@ def test_pass(): pass
684
684
685
685
"""
686
686
)
687
- page = run (pytester )
687
+ page = run (pytester , cmd_flags = [ "-s" ] )
688
688
assert_results (page , passed = 1 )
689
689
690
690
def test_results_table_hook_pop (self , pytester ):
@@ -759,25 +759,29 @@ def log_cli(self, pytester):
759
759
760
760
@pytest .fixture
761
761
def test_file (self ):
762
- return """
763
- import pytest
764
- import logging
765
- @pytest.fixture
766
- def setup():
767
- logging.info("this is setup")
768
- {setup}
769
- yield
770
- logging.info("this is teardown")
771
- {teardown}
762
+ def formatter (assertion , setup = "" , teardown = "" , flaky = "" ):
763
+ return f"""
764
+ import pytest
765
+ import logging
766
+ @pytest.fixture
767
+ def setup():
768
+ logging.info("this is setup")
769
+ { setup }
770
+ yield
771
+ logging.info("this is teardown")
772
+ { teardown }
773
+
774
+ { flaky }
775
+ def test_logging(setup):
776
+ logging.info("this is test")
777
+ assert { assertion }
778
+ """
772
779
773
- def test_logging(setup):
774
- logging.info("this is test")
775
- assert {assertion}
776
- """
780
+ return formatter
777
781
778
782
@pytest .mark .usefixtures ("log_cli" )
779
783
def test_all_pass (self , test_file , pytester ):
780
- pytester .makepyfile (test_file . format ( setup = "" , teardown = "" , assertion = True ))
784
+ pytester .makepyfile (test_file ( assertion = True ))
781
785
page = run (pytester )
782
786
assert_results (page , passed = 1 )
783
787
@@ -787,9 +791,7 @@ def test_all_pass(self, test_file, pytester):
787
791
788
792
@pytest .mark .usefixtures ("log_cli" )
789
793
def test_setup_error (self , test_file , pytester ):
790
- pytester .makepyfile (
791
- test_file .format (setup = "error" , teardown = "" , assertion = True )
792
- )
794
+ pytester .makepyfile (test_file (assertion = True , setup = "error" ))
793
795
page = run (pytester )
794
796
assert_results (page , error = 1 )
795
797
@@ -800,7 +802,7 @@ def test_setup_error(self, test_file, pytester):
800
802
801
803
@pytest .mark .usefixtures ("log_cli" )
802
804
def test_test_fails (self , test_file , pytester ):
803
- pytester .makepyfile (test_file . format ( setup = "" , teardown = "" , assertion = False ))
805
+ pytester .makepyfile (test_file ( assertion = False ))
804
806
page = run (pytester )
805
807
assert_results (page , failed = 1 )
806
808
@@ -813,9 +815,7 @@ def test_test_fails(self, test_file, pytester):
813
815
"assertion, result" , [(True , {"passed" : 1 }), (False , {"failed" : 1 })]
814
816
)
815
817
def test_teardown_error (self , test_file , pytester , assertion , result ):
816
- pytester .makepyfile (
817
- test_file .format (setup = "" , teardown = "error" , assertion = assertion )
818
- )
818
+ pytester .makepyfile (test_file (assertion = assertion , teardown = "error" ))
819
819
page = run (pytester )
820
820
assert_results (page , error = 1 , ** result )
821
821
@@ -825,7 +825,7 @@ def test_teardown_error(self, test_file, pytester, assertion, result):
825
825
assert_that (log ).matches (self .LOG_LINE_REGEX .format (when ))
826
826
827
827
def test_no_log (self , test_file , pytester ):
828
- pytester .makepyfile (test_file . format ( setup = "" , teardown = "" , assertion = True ))
828
+ pytester .makepyfile (test_file ( assertion = True ))
829
829
page = run (pytester )
830
830
assert_results (page , passed = 1 )
831
831
@@ -834,6 +834,18 @@ def test_no_log(self, test_file, pytester):
834
834
for when in ["setup" , "test" , "teardown" ]:
835
835
assert_that (log ).does_not_match (self .LOG_LINE_REGEX .format (when ))
836
836
837
+ @pytest .mark .usefixtures ("log_cli" )
838
+ def test_rerun (self , test_file , pytester ):
839
+ pytester .makepyfile (
840
+ test_file (assertion = False , flaky = "@pytest.mark.flaky(reruns=2)" )
841
+ )
842
+ page = run (pytester , query_params = {"visible" : "failed" })
843
+ assert_results (page , failed = 1 , rerun = 2 )
844
+
845
+ log = get_log (page )
846
+ assert_that (log .count ("Captured log setup" )).is_equal_to (3 )
847
+ assert_that (log .count ("Captured log teardown" )).is_equal_to (5 )
848
+
837
849
838
850
class TestCollapsedQueryParam :
839
851
@pytest .fixture
0 commit comments