
    \jh                         d dl Z d dlmZ d dlmZ d dlmZ d dl d dl d Z	d Z
d Zd	 Ze j                  j                  d
g d      d
efd       Zy)    N)Context)EvaluationDetail)EventInputEvaluation)*c                     t        d      j                  d      j                  d      j                  ddd      j	                  d      j                  dd      j                         } t               j                  d      j                         }t        j                  d      }t        ddd	dd
      }t        |j                  | |t              |d        y )NfeatureT   abc
badfeaturexPREREQUISITE_FAILEDkindprerequisiteKey)FlagBuilderonoff_variation
variationsfallthrough_variationprerequisitebuildEvaluatorBuilderwith_unknown_flagr   creater   assert_eval_resultevaluateevent_factory)flag	evaluatoruserdetails       S/root/env/lib/python3.12/site-packages/testing/impl/test_evaluator_prerequisites.py9test_flag_returns_off_variation_if_prerequisite_not_foundr%      s    y!$$T*88;FFsCQTUkklmn	lA	&uuw 	 "44\BHHJI>>#Dc1/DYe&fgFy))$mDfdS    c                     t        d      j                  d      j                  d      j                  ddd      j	                  d      j                  dd      j                         } t        d      j                  d      j                  d	      j                  d      j                  d
d      j	                  d      j                         }t               j                  |      j                         }t        j                  d      }t        ddddd      }t        d||j                  |ddd d | d	
      g}t        |j!                  | |t"              ||       y )Nfeature0Tr	   r
   r   r   feature1   Fder   r   r   r   r   r   r   r   r   r   r   versionr   	with_flagr   r   r   r   keyr   r   r   r    flag1r!   r"   r#   events_should_bes         r$   @test_flag_returns_off_variation_and_event_if_prerequisite_is_offr4      s)   z"%%d+99!<GGSRUVllmno	j!	$UUW 	
#++A.11%8FFqITTUXZ]^ttuvw	 
 !",,U399;I>>#Dc1/DYc&deFQeii3dDRWX y))$mDfN^_r&   c                     t        d      j                  d      j                  d      j                  ddd      j	                  d      j                  dd      j                         } t        d      j                  d      j                  d      j                  d      j                  d	d
      j	                  d      j                         }t               j                  |      j                         }t        j                  d      }t        ddddd      }t        d||j                  |dd	d d | d
      g}t        |j!                  | |t"              ||       y )Nr(   Tr	   r
   r   r   r)   r*   r+   r,   r   r   r   r   Fr-   r1   s         r$   Dtest_flag_returns_off_variation_and_event_if_prerequisite_is_not_metr6   !   s'   z"%%d+99!<GGSRUVllmno	j!	$UUW 	
#++A.11$7EEaHSSTWY\]sstuv	 
 ",,U399;I>>#Dc1/DYc&deFQeii3dDRWX y))$mDfN^_r&   c                     t        d      j                  d      j                  d      j                  ddd      j	                  d      j                  dd      j                         } t        d      j                  d	      j                  d      j                  d      j                  d
d      j	                  d      j                         }t               j                  |      j                         }t        j                  d      }t        ddddi      }t        d||j                  |ddd d | d
      g}t        |j!                  | |t"              ||       y )Nr(   Tr	   r
   r   r   r   r)   r*   r+   r,   r   r   FALLTHROUGHFr-   r1   s         r$   Otest_flag_returns_fallthrough_and_event_if_prereq_is_met_and_there_are_no_rulesr9   .   s%   z"%%d+99!<GGSRUVllmno	j!	$UUW 	
#++A.11$7EEaHSSTWY\]sstuv	 
 ",,U399;I>>#Dc1v}&=>FQeii3dDRWX y))$mDfN^_r&   depth)r	   r*         c                 :   t        d t        |       D              }g }t        |       D ]t  }|j                  t        ||         j	                  d      j                  dd      j                  d      j                  ||dz   | z     d      j                                v t               }|D ]  }|j                  |        |j                         }t        j                  d      }t        d d ddd	      }t        |j                  |d   |t               |d        y )
Nc              3   &   K   | ]	  }d |z    yw)z	flagkey%dN ).0is     r$   	<genexpr>z4test_prerequisite_cycle_detection.<locals>.<genexpr>=   s     ;[1_;s   TFr   r	   r   ERRORMALFORMED_FLAG)r   	errorKind)listrangeappendr   r   r   r   r   r   r   r/   r   r   r   r   r   r   )	r:   	flag_keysflagsrA   evaluator_builderfr!   contextr#   s	            r$   !test_prerequisite_cycle_detectionrN   ;   s   ;eEl;;IE5\ 	!%((.99%FTTUVWiQ%8!<	
 )* '##A&'!'')InnS!GdD7IY*Z[Fy))%(G]KVUYZr&   )pytestldclient.clientr   ldclient.evaluationr   ldclient.impl.events.typesr   testing.builderstesting.impl.evaluator_utilr%   r4   r6   r9   markparametrizeintrN   r?   r&   r$   <module>rX      s^     # 0 ;  )T``` ,/[S [ 0[r&   