11# -*- coding: utf-8 -*-
22
3- from junitparser .xunit2 import JUnitXml , TestSuite , TestCase , RerunFailure
3+ from junitparser .xunit2 import JUnitXml , TestSuite , TestCase , RerunFailure , RerunError , FlakyFailure , FlakyError
44from junitparser import Failure
55from copy import deepcopy
66
77
88class Test_TestCase :
9- def test_case_fromstring (self ):
9+ def test_case_rerun_fromstring (self ):
1010 text = """<testcase name="testname">
1111 <failure message="failure message" type="FailureType"/>
1212 <rerunFailure message="Not found" type="404">
@@ -16,28 +16,110 @@ def test_case_fromstring(self):
1616 <system-err>Error del servidor</system-err>
1717 <stackTrace>Stacktrace</stackTrace>
1818 </rerunFailure>
19+ <rerunError message="Setup error"/>
1920 <system-out>System out</system-out>
2021 <system-err>System err</system-err>
2122 </testcase>"""
2223 case = TestCase .fromstring (text )
2324 assert case .name == "testname"
25+ assert len (case .result ) == 1
2426 assert isinstance (case .result [0 ], Failure )
2527 assert case .system_out == "System out"
2628 assert case .system_err == "System err"
29+ assert case .is_passed == False
30+ assert case .is_failure == True
31+ assert case .is_error == False
32+ assert case .is_skipped == False
33+ assert case .is_rerun == True
34+ assert case .is_flaky == False
35+
36+ interim_results = case .interim_result
37+ assert len (interim_results ) == 3
38+ assert isinstance (interim_results [0 ], RerunFailure )
39+ assert isinstance (interim_results [1 ], RerunFailure )
40+ assert isinstance (interim_results [2 ], RerunError )
41+
2742 rerun_failures = case .rerun_failures ()
2843 assert len (rerun_failures ) == 2
44+ assert isinstance (rerun_failures [0 ], RerunFailure )
2945 assert rerun_failures [0 ].message == "Not found"
3046 assert rerun_failures [0 ].stack_trace is None
3147 assert rerun_failures [0 ].system_out == "No ha encontrado"
3248 assert rerun_failures [0 ].system_err is None
49+ assert isinstance (rerun_failures [1 ], RerunFailure )
3350 assert rerun_failures [1 ].message == "Server error"
3451 assert rerun_failures [1 ].stack_trace == "Stacktrace"
3552 assert rerun_failures [1 ].system_out is None
3653 assert rerun_failures [1 ].system_err == "Error del servidor"
37- assert len (case .rerun_errors ()) == 0
54+
55+ rerun_errors = case .rerun_errors ()
56+ assert len (rerun_errors ) == 1
57+ assert isinstance (rerun_errors [0 ], RerunError )
58+ assert rerun_errors [0 ].message == "Setup error"
59+ assert rerun_errors [0 ].stack_trace is None
60+ assert rerun_errors [0 ].system_out is None
61+ assert rerun_errors [0 ].system_err is None
62+
3863 assert len (case .flaky_failures ()) == 0
64+
3965 assert len (case .flaky_errors ()) == 0
4066
67+ def test_case_flaky_fromstring (self ):
68+ text = """<testcase name="testname">
69+ <flakyFailure message="Not found" type="404">
70+ <system-out>No ha encontrado</system-out>
71+ </flakyFailure>
72+ <flakyFailure message="Server error" type="500">
73+ <system-err>Error del servidor</system-err>
74+ <stackTrace>Stacktrace</stackTrace>
75+ </flakyFailure>
76+ <flakyError message="Setup error"/>
77+ <system-out>System out</system-out>
78+ <system-err>System err</system-err>
79+ </testcase>"""
80+ case = TestCase .fromstring (text )
81+ assert case .name == "testname"
82+ assert len (case .result ) == 0
83+ assert case .system_out == "System out"
84+ assert case .system_err == "System err"
85+ assert case .is_passed == True
86+ assert case .is_failure == False
87+ assert case .is_error == False
88+ assert case .is_skipped == False
89+ assert case .is_rerun == False
90+ assert case .is_flaky == True
91+
92+ interim_results = case .interim_result
93+ assert len (interim_results ) == 3
94+ assert isinstance (interim_results [0 ], FlakyFailure )
95+ assert isinstance (interim_results [1 ], FlakyFailure )
96+ assert isinstance (interim_results [2 ], FlakyError )
97+
98+ assert len (case .rerun_failures ()) == 0
99+
100+ assert len (case .rerun_errors ()) == 0
101+
102+ flaky_failures = case .flaky_failures ()
103+ assert len (flaky_failures ) == 2
104+ assert isinstance (flaky_failures [0 ], FlakyFailure )
105+ assert flaky_failures [0 ].message == "Not found"
106+ assert flaky_failures [0 ].stack_trace is None
107+ assert flaky_failures [0 ].system_out == "No ha encontrado"
108+ assert flaky_failures [0 ].system_err is None
109+ assert isinstance (flaky_failures [1 ], FlakyFailure )
110+ assert flaky_failures [1 ].message == "Server error"
111+ assert flaky_failures [1 ].stack_trace == "Stacktrace"
112+ assert flaky_failures [1 ].system_out is None
113+ assert flaky_failures [1 ].system_err == "Error del servidor"
114+
115+ flaky_errors = case .flaky_errors ()
116+ assert len (flaky_errors ) == 1
117+ assert isinstance (flaky_errors [0 ], FlakyError )
118+ assert flaky_errors [0 ].message == "Setup error"
119+ assert flaky_errors [0 ].stack_trace is None
120+ assert flaky_errors [0 ].system_out is None
121+ assert flaky_errors [0 ].system_err is None
122+
41123 def test_case_rerun (self ):
42124 case = TestCase ("testname" )
43125 rerun_failure = RerunFailure ("Not found" , "404" )
0 commit comments