
    chQ                         d dl Z d dlmZmZmZmZmZ  G d de j                        Z G d dee j                        Z	 G d de      Z
 G d	 d
e      Z G d de      Zy)    N)CoverageTestResultBaseTestSuiteBaseTestRunnerMutationTestResultBaseTestc                        e Zd Z fdZ fdZ fdZ fdZ fdZ fdZ fdZ	d Z
d	 Zd
 Zd Zd Zed        Zd Z xZS )UnittestMutationTestResultc                 l    t        |   |i | d | _        d| _        t	               | _        d| _        y )NFr   )super__init__
type_errorfailfastr   mutation_test_resulttest_order_counter)selfargskwargs	__class__s      /home/xtuchyna/.var/app/com.visualstudio.code/data/virtualenvs/gen-test-bench-v8TMe8KL/lib/python3.12/site-packages/mutpy/test_runners/unittest_runner.pyr   z#UnittestMutationTestResult.__init__   s8    $)&)$6$8! #$    c                 F    t         |   |       | j                  |       y N)r   
addSuccess_add_successr   testr   s     r   r   z%UnittestMutationTestResult.addSuccess   s    4 $r   c                 H    t         |   ||       | j                  |       y r   )r   addExpectedFailurer   r   r   errr   s      r   r   z-UnittestMutationTestResult.addExpectedFailure   s     "4-$r   c                 D    t         |   |       | j                          y r   )r   addUnexpectedSuccess_add_latest_unexpected_successr   s     r   r"   z/UnittestMutationTestResult.addUnexpectedSuccess   s    $T*++-r   c                 F    t         |   ||       | j                          y r   )r   
addFailure_add_latest_failurer   s      r   r%   z%UnittestMutationTestResult.addFailure   s    4%  "r   c                 F    t         |   ||       | j                          y r   )r   addSkip_add_latest_skip)r   r   reasonr   s      r   r(   z"UnittestMutationTestResult.addSkip!   s    f%r   c                     |d   t         k(  r| j                  j                  |       y t        t        |   ||       | j                          y )Nr   )	TypeErrorr   set_type_errorr   r	   addError_add_latest_errorr   s      r   r.   z#UnittestMutationTestResult.addError%   sA    q6Y%%44S9,d<T3G""$r   c                 L    | j                   j                  t        |             y r   )r   
add_passedstrr   r   s     r   r   z'UnittestMutationTestResult._add_success,   s    !!,,SY7r   c                     | j                   d   }| j                  j                  t        |d         | j	                  |d         |d          y Nr      )failuresr   
add_failedr2   _get_short_messager   failures     r   r&   z.UnittestMutationTestResult._add_latest_failure/   sI    --#!!,,S_d>U>UV]^_V`>acjklcmnr   c                     | j                   d   }| j                  j                  t        |d         | j	                  |d         |d          y r5   )errorsr   r9   r2   r:   r;   s     r   r/   z,UnittestMutationTestResult._add_latest_error3   sH    ++b/!!,,S_d>U>UV]^_V`>acjklcmnr   c                 r    | j                   d   }| j                  j                  t        |d         d       y )Nr6   r   zUnexpected success)unexpectedSuccessesr   r9   r2   r;   s     r   r#   z9UnittestMutationTestResult._add_latest_unexpected_success7   s1    **2.!!,,S_>RSr   c                 j    | j                   d   }| j                  j                  t        |             y )Nr6   )skippedr   add_skippedr2   )r   skips     r   r)   z+UnittestMutationTestResult._add_latest_skip;   s(    ||B!!--c$i8r   c                 *    | j                  d      d   S )N
)split)	tracebacks    r   r:   z-UnittestMutationTestResult._get_short_message?   s    t$R((r   c                     | xj                   dz  c_         | j                   | j                  j                  |j                         <   y )Nr7   )r   r   
test_orderid)r   r   elapseds      r   addDurationz&UnittestMutationTestResult.addDurationF   s5    1$:>:Q:Q!!,,TWWY7r   )__name__
__module____qualname__r   r   r   r"   r%   r(   r.   r   r&   r/   r#   r)   staticmethodr:   rN   __classcell__r   s   @r   r	   r	      s\    $  .# %8ooT9 ) )Rr   r	   c                   (     e Zd Z fdZ fdZ xZS )UnittestCoverageResultc                 D    t         |   |       | j                          y r   )r   	startTeststart_measure_coverager   s     r   rX   z UnittestCoverageResult.startTestM   s    $##%r   c                 X    t         |   |       | j                  t        |             y r   )r   stopTeststop_measure_coverageUnittestTestr   s     r   r[   zUnittestCoverageResult.stopTestQ   s#    ""<#56r   )rO   rP   rQ   rX   r[   rS   rT   s   @r   rV   rV   K   s    &7 7r   rV   c                   >    e Zd Zd Zd Zd Zd Zd
dZd Zd Z	d	 Z
y)UnittestTestSuitec                 6    t        j                         | _        y r   )unittest	TestSuitesuiter   s    r   r   zUnittestTestSuite.__init__X   s    '')
r   c                 Z    | j                   j                  | j                  ||             y r   )rc   addTests
load_testsr   test_moduletarget_tests      r   	add_testszUnittestTestSuite.add_tests[   s    

DOOKEFr   c                     t        |j                  |j                  j                        }t        |j                  |j                  j                   t	        j
                  d      |             y )Nznot covered)getattrinternal_test_obj_testMethodNamesetattrra   rD   )r   r   test_methods      r   	skip_testzUnittestTestSuite.skip_test^   sQ    d44d6L6L6\6\]&&(>(>(N(N,m,[9	;r   c                 d    t               }| j                  j                  |       |j                  S r   )r	   rc   runr   )r   results     r   rt   zUnittestTestSuite.runc   s&    +-

v***r   Nc                 T    t        |      }| j                  j                  |       |S )N)coverage_injector)rV   rc   rt   )r   rw   coverage_results      r   run_with_coveragez#UnittestTestSuite.run_with_coverageh   s#    0CTU

'r   c                     |r$t        j                         j                  ||      S t        j                         j                  |      S r   )ra   
TestLoaderloadTestsFromNameloadTestsFromModulerh   s      r   rg   zUnittestTestSuite.load_testsm   s;    &&(::;TT&&(<<[IIr   c              #   d   K   	 |D ]  }| j                  |        y # t        $ r | Y y w xY wwr   )
iter_testsr,   )r   testsr   s      r   r   zUnittestTestSuite.iter_testss   s4     	%  	K	s   0 0-0-0c              #   f   K   | j                  | j                        D ]  }t        |        y wr   )r   rc   r]   r3   s     r   __iter__zUnittestTestSuite.__iter__z   s(     OODJJ/Dt$$ 0s   /1r   )rO   rP   rQ   r   rk   rr   rt   ry   rg   r   r    r   r   r_   r_   V   s,    *G;
+

J%r   r_   c                       e Zd Zd Zd Zy)r]   c                 ,    t        | j                        S r   )reprrn   rd   s    r   __repr__zUnittestTest.__repr__   s    D**++r   c                     || _         y r   )rn   )r   rn   s     r   r   zUnittestTest.__init__   s
    !2r   N)rO   rP   rQ   r   r   r   r   r   r]   r]      s    ,3r   r]   c                       e Zd ZeZy)UnittestTestRunnerN)rO   rP   rQ   r_   test_suite_clsr   r   r   r   r      s    &Nr   r   )ra   mutpy.test_runners.baser   r   r   r   r   
TestResultr	   rV   r_   r]   r   r   r   r   <module>r      s_     s sBR!4!4 BRJ7/1D1D 7&% &%R38 3' 'r   