
    fjJ                       d Z ddlmZ ddlZddlmc mZ ddl	m
Z
mZmZ ddlZddlZddlmZ  ee      j'                         j(                  d   Z ee      ej.                  vr"ej.                  j1                  d ee             ddZ edd	       dd
lmZmZmZmZmZm Z m!Z!m"Z" dZ#dZ$dZ%e$e$e$e#f	 	 	 	 	 	 	 	 	 ddZ&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3y)u   task-2693 regression: callback authority 4-source validator
(PR #152 hardening #4 회장 verbatim 필수 4-요구 #4).

검증 대상: utils.callback_authority_4source_validator.validate
모든 verdict classification 케이스 1:1 매칭.
    )annotationsN)AnyDictOptional)Path   c                   t         j                  j                  |       }|t        |dd      j	                  |      r|S t
        j                  j                  | t        |z        }g }d }||u}|}|r|j                  }d }	||	u}
|
}|slt        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }|j!                  |       |rt        j                  d
fd		f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |	      d
z  }dd|iz  }|j!                  |       t        j"                  |d      i z  }dd|iz  }t%        t        j&                  |            d x}x}x}x}x}x}
}	t
        j                  j)                  |      }|t         j                  | <   |j                  j+                  |       |S )N__file__ )is not)z%(py2)s is not %(py5)sspec)py2py5z%(py7)spy7)z5%(py11)s
{%(py11)s = %(py9)s.loader
} is not %(py14)s)py9py11py14z%(py16)spy16r   zassert %(py19)spy19)sysmodulesgetgetattrendswith	importlibutilspec_from_file_location_ROOTloader
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprappend_format_boolopAssertionError_format_explanationmodule_from_specexec_module)modnamerelpathexistingr   @py_assert1@py_assert4@py_assert3@py_assert0@py_assert10@py_assert13@py_assert12@py_format6@py_format8@py_format15@py_format17@py_format18@py_format20mods                     i/home/jay/workspace/.worktrees/task-2686-dev8/tests/regression/callback_4source_validator/test_4source.py
_load_realr>      sa   {{w'H*b A J J7 S>>11'57?KD7t74t77474 777774t77777747774777t77777774777777777777777477777777777777
..
)
)$
/CCKKKKC J    z*utils.callback_authority_4source_validatorz-utils/callback_authority_4source_validator.py)ACTUAL_CRON_OWNER_NOT_ANUAUTHORITATIVE_4SOURCE_OKENVELOPE_3SID_MISMATCHENVELOPE_OWNER_NOT_ANUSCHEDULE_HISTORY_SID_MISMATCHSCHEDULE_HISTORY_STATUS_FAILVALIDATOR_SCHEMAvalidatec119085addb0f8b7z$53e89540-5bed-4692-a726-ed857820758az$11111111-2222-3333-4444-555555555555c                    || ||dS )N)	owner_keychair_facing_session_idcollector_session_iddelivery_session_id )chair	collectordeliveryowners       r=   _envrS   5   s     #( )'	 r?   c                 p   d} t         | k(  }|st        j                  d|fdt         | f      dt        j                         v st        j
                  t               rt        j                  t               ndt        j                  |       dz  }dd|iz  }t        t        j                  |            d x}} y )Nz-utils.callback_authority_4source_validator.v1==)z%(py0)s == %(py3)srF   )py0py3zassert %(py5)sr   )	rF   r    r!   r"   r#   r$   r%   r(   r)   )@py_assert2r/   @py_format4r6   s       r=   test_schema_token_stabler[   C   sb    NNNNNNNNNNNNNNNNNNNNNNNNNNNNr?   c                    t        t               t        dt        d      } | j                  }|t
        k(  }|st        j                  d|fd|t
        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t
              rt        j                  t
              nddz  }t        j                  |       d	z   d
|iz  }t        t        j                  |            d x}}| j                  }d}||u }|st        j                  d|fd||f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )NokstatusrK   envelopeactual_cron_owner_keyschedule_history_recordrU   z6%(py2)s
{%(py2)s = %(py0)s.classification
} == %(py4)svrA   rW   r   py4
>assert %(py6)spy6Tisz.%(py2)s
{%(py2)s = %(py0)s.passed
} is %(py5)srW   r   r   assert %(py7)sr   )rG   rS   ANUSIDclassificationrA   r    r!   r"   r#   r$   r%   _format_assertmsgr(   r)   passedre   r/   r1   @py_format5@py_format7r0   r6   r7   s           r=   test_authoritative_4source_okrw   G   s   !+/C P	A
 :77:::7::::::1:::1:::::::::7:::7::::::::::88t8t8t118tr?   c                    t        t        d       t        ddi      } | j                  }|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndd	z  }t        j                  |       d
z   d|iz  }t        t        j                  |            d x}}| j                  }d}||u }|st        j                  d|fd||f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )N)rR   r_   r]   r`   rU   rd   re   rC   rf   rh   ri   Frj   rl   rm   rn   r   )rG   rS   ro   rq   rC   r    r!   r"   r#   r$   r%   rr   r(   r)   rs   rt   s           r=   test_envelope_owner_missingry   Q   s   D!!!)4 0	A
 855888588888818881888888888588858888q88888888u8u8u118ur?   c                 b   t        t               d ddi      } | j                  }|t        k(  }|st	        j
                  d|fd|t        f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              nddz  }t	        j                  |       d	z   d
|iz  }t        t	        j                  |            d x}}y )Nr_   r]   r`   rU   rd   re   r@   rf   rh   ri   )rG   rS   rq   r@   r    r!   r"   r#   r$   r%   rr   r(   r)   re   r/   r1   ru   rv   s        r=   test_actual_cron_owner_missingr|   [   s    "!)4 0	A
 ;88;;;8;;;;;;1;;;1;;;;;;;;;8;;;8;;;;!;;;;;;r?   c                 v   t        t        t              t        ddi      } | j                  }|t
        k(  }|st        j                  d|fd|t
        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t
              rt        j                  t
              ndd	z  }t        j                  |       d
z   d|iz  }t        t        j                  |            d x}}y )NrP   r_   r]   r`   rU   rd   re   rB   rf   rh   ri   rG   rS   SID2ro   rq   rB   r    r!   r"   r#   r$   r%   rr   r(   r)   r{   s        r=   *test_envelope_3sid_mismatch_collector_diffr   d   s    %!!)4 0	A
 855888588888818881888888888588858888q888888r?   c                 v   t        t        t              t        ddi      } | j                  }|t
        k(  }|st        j                  d|fd|t
        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t
              rt        j                  t
              ndd	z  }t        j                  |       d
z   d|iz  }t        t        j                  |            d x}}y )N)rQ   r_   r]   r`   rU   rd   re   rB   rf   rh   ri   r   r{   s        r=   )test_envelope_3sid_mismatch_delivery_diffr   m   s    t$!!)4 0	A
 855888588888818881888888888588858888q888888r?   c                 n   t        t        d      t        ddi      } | j                  }|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      d	t        j                         v st        j                  t              rt        j                  t              nd	d
z  }t        j                  |       dz   d|iz  }t        t        j                  |            d x}}y )Nr   r~   r_   r]   r`   rU   rd   re   rB   rf   rh   ri   )rG   rS   ro   rq   rB   r    r!   r"   r#   r$   r%   rr   r(   r)   r{   s        r=   )test_envelope_3sid_mismatch_missing_fieldr   v   s    #!!)4 0	A
 855888588888818881888888888588858888q888888r?   c                 j   t        t               t        ddi      } | j                  }|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              nddz  }t        j                  |       d	z   d
|iz  }t        t        j                  |            d x}}y )Nr_   	cancelledr`   rU   rd   re   rE   rf   rh   ri   rG   rS   ro   rq   rE   r    r!   r"   r#   r$   r%   rr   r(   r)   r{   s        r=   +test_schedule_history_status_cancelled_failr      s    !!); 7	A
 >;;>>>;>>>>>>1>>>1>>>>>>>>>;>>>;>>>>Q>>>>>>r?   c                 j   t        t               t        ddi      } | j                  }|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              nddz  }t        j                  |       d	z   d
|iz  }t        t        j                  |            d x}}y )Nr_   errorr`   rU   rd   re   rE   rf   rh   ri   r   r{   s        r=   'test_schedule_history_status_error_failr      s    !!)7 3	A
 >;;>>>;>>>>>>1>>>1>>>>>>>>>;>>>;>>>>Q>>>>>>r?   c                 t   t        t               t        dt        d      } | j                  }|t
        k(  }|st        j                  d|fd|t
        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t
              rt        j                  t
              nddz  }t        j                  |       d	z   d
|iz  }t        t        j                  |            d x}}y )Nr]   r^   r`   rU   rd   re   rD   rf   rh   ri   )rG   rS   ro   r   rq   rD   r    r!   r"   r#   r$   r%   rr   r(   r)   r{   s        r=   "test_schedule_history_sid_mismatchr      s    !+/D Q	A
 ?<<???<??????1???1?????????<???<????a??????r?   c                 j   t        t               t        ddi      } | j                  }|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              nddz  }t        j                  |       d	z   d
|iz  }t        t        j                  |            d x}}y )Nr_   r]   r`   rU   rd   re   rA   rf   rh   ri   )rG   rS   ro   rq   rA   r    r!   r"   r#   r$   r%   rr   r(   r)   r{   s        r=   Ctest_schedule_history_missing_sid_field_still_passes_when_status_okr      s    !!)4 0	A
 :77:::7::::::1:::1:::::::::7:::7::::::::::r?   c                 Z   t        d t        ddi      } | j                  }|t        k(  }|st	        j
                  d|fd|t        f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              nddz  }t	        j                  |       d	z   d
|iz  }t        t	        j                  |            d x}}y )Nr_   r]   r`   rU   rd   re   rC   rf   rh   ri   )rG   ro   rq   rC   r    r!   r"   r#   r$   r%   rr   r(   r)   r{   s        r=   test_non_dict_envelope_safer      s    !!)4 0	A
 855888588888818881888888888588858888q888888r?   c                 f   t        t               t        d       } | j                  }|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              nddz  }t        j                  |       dz   d|iz  }t        t        j                  |            d x}}y )	Nr`   rU   rd   re   rE   rf   rh   ri   r   r{   s        r=   #test_non_dict_schedule_history_safer      s    ! $	A
 >;;>>>;>>>>>>1>>>1>>>>>>>>>;>>>;>>>>Q>>>>>>r?   )r,   strr-   r   )
rO   Optional[str]rP   r   rQ   r   rR   r   returnzDict[str, Any])4__doc__
__future__r   builtinsr"   _pytest.assertion.rewrite	assertionrewriter    typingr   r   r   importlib.utilr   r   pathlibr   r
   resolveparentsr   r   pathinsertr>   *utils.callback_authority_4source_validatorr@   rA   rB   rC   rD   rE   rF   rG   ro   rp   r   rS   r[   rw   ry   r|   r   r   r   r   r   r   r   r   r   rN   r?   r=   <module>r      s   #    & &  
 X ((+u:SXXHHOOAs5z"	 03
	 	 	 ,- "!	  	
 O<999??@;9?r?   