
    \j                         d dl mZ d dlmZ d dl d dl d Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zy)    )Context)EvaluationDetail)*c                  (   t        d      j                  d      j                  d      j                  ddd      j	                         } t        j                  d      }t        dddd	i      }t        t        j                  | |t              |d        y )
NfeatureF   abcxkindOFFFlagBuilderonoff_variation
variationsbuildr   creater   assert_eval_resultbasic_evaluatorevaluateevent_factoryflaguserdetails      E/root/env/lib/python3.12/site-packages/testing/impl/test_evaluator.py.test_flag_returns_off_variation_if_flag_is_offr      sw    y!$$U+99!<GGSRUV\\^D>>#Dc1vuo6F//dMJFTXY    c                  
   t        d      j                  d      j                  ddd      j                         } t	        j
                  d      }t        d d ddi      }t        t        j                  | |t              |d        y )	Nr   Fr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s      r   Ftest_flag_returns_none_if_flag_is_off_and_off_variation_is_unspecifiedr#      sk    y!$$U+66sCEKKMD>>#DdD65/:F//dMJFTXYr    c                  *   t        d      j                  d      j                  d      j                  ddd      j	                         } t        j                  d      }t        d d dd	d
      }t        t        j                  | |t              |d        y )Nr   F  r	   r
   r   r   ERRORMALFORMED_FLAGr   	errorKindr   r   s      r   4test_flag_returns_error_if_off_variation_is_too_highr*      sy    y!$$U+99#>II#sTWX^^`D>>#DdD7IY*Z[F//dMJFTXYr    c                  *   t        d      j                  d      j                  d      j                  ddd      j	                         } t        j                  d      }t        d d dd	d
      }t        t        j                  | |t              |d        y )Nr   Fr	   r
   r   r   r&   r'   r(   r   r   s      r   4test_flag_returns_error_if_off_variation_is_negativer-      sy    y!$$U+99"=HHcSVW]]_D>>#DdD7IY*Z[F//dMJFTXYr    c                  *   t        d      j                  d      j                  ddd      j                  d      j	                         } t        j                  d      }t        d d dd	d
      }t        t        j                  | |t              |d        y )Nr   Tr	   r
   r   r%   r   r&   r'   r(   r   r   r   fallthrough_variationr   r   r   r   r   r   r   r   r   s      r   <test_flag_returns_error_if_fallthrough_variation_is_too_highr1      sy    y!$$T*55c3DZZ[^_eegD>>#DdD7IY*Z[F//dMJFTXYr    c                  *   t        d      j                  d      j                  ddd      j                  d      j	                         } t        j                  d      }t        d d dd	d
      }t        t        j                  | |t              |d        y )Nr   Tr	   r
   r   r,   r   r&   r'   r(   r/   r   s      r   <test_flag_returns_error_if_fallthrough_variation_is_negativer3   %   sy    y!$$T*55c3DZZ[]^ddfD>>#DdD7IY*Z[F//dMJFTXYr    c                     t        d      j                  d      j                  ddd      j                         } t	        j
                  d      }t        d d ddd	      }t        t        j                  | |t              |d        y )
Nr   Tr	   r
   r   r   r&   r'   r(   r"   r   s      r   Btest_flag_returns_error_if_fallthrough_has_no_variation_or_rolloutr5   +   sm    y!$$T*55c3DJJLD>>#DdD7IY*Z[F//dMJFTXYr    c                  .   t        d      j                  d      j                  ddd      j                  dg i      j	                         } t        j                  d      }t        d d dd	d
      }t        t        j                  | |t              |d        y )Nr   Tr	   r
   r   r   r   r&   r'   r(   )r   r   r   fallthrough_rolloutr   r   r   r   r   r   r   r   r   s      r   Etest_flag_returns_error_if_fallthrough_has_rollout_with_no_variationsr8   1   s    y!$$T*55c3DXXZfhjYklrrtD>>#DdD7IY*Z[F//dMJFTXYr    c                      ddddgdgdd} t        |       }t        j                  d      }t        ddd	ddd
      }t	        t
        j                  ||t              |d        y )Nidkeyinuserkey	attributeopvaluesr   r:   clauses	variationT
RULE_MATCH)r   	ruleIndexruleIdmake_boolean_flag_with_rulesr   r   r   r   r   r   r   ruler   r   r   s       r   !test_flag_matches_user_from_rulesrL   7   sg    5QZP[%\$]lmnD'-D>>)$DdA1X\']^F//dMJFTXYr    c                      ddddgdgdd} t        |       }t        j                  d      }t        d d dd	d
      }t	        t
        j                  ||t              |d        y )Nr:   r;   r<   r=   r>   r%   rB   r&   r'   r(   rH   rJ   s       r   5test_flag_returns_error_if_rule_variation_is_too_highrN   >   se    5QZP[%\$]lopD'-D>>)$DdD7IY*Z[F//dMJFTXYr    c                      ddddgdgdd} t        |       }t        j                  d      }t        d d dd	d
      }t	        t
        j                  ||t              |d        y )Nr:   r;   r<   r=   r>   r,   rB   r&   r'   r(   rH   rJ   s       r   5test_flag_returns_error_if_rule_variation_is_negativerP   E   se    5QZP[%\$]lnoD'-D>>)$DdD7IY*Z[F//dMJFTXYr    c                      ddddgdgd} t        |       }t        j                  d      }t        d d ddd	      }t	        t
        j                  ||t              |d        y )
Nr:   r;   r<   r=   r>   )r:   rC   r&   r'   r(   rH   rJ   s       r   ;test_flag_returns_error_if_rule_has_no_variation_or_rolloutrR   L   sb    5QZP[%\$]^D'-D>>)$DdD7IY*Z[F//dMJFTXYr    c                      ddddgdgdg id} t        |       }t        j                  d      }t        d d dd	d
      }t	        t
        j                  ||t              |d        y )Nr:   r;   r<   r=   r>   r   )r:   rC   rolloutr&   r'   r(   rH   rJ   s       r   >test_flag_returns_error_if_rule_has_rollout_with_no_variationsrU   S   sl    5QZP[%\$] "%(D'-D>>)$DdD7IY*Z[F//dMJFTXYr    c                  B   t        d      j                  d      j                         } t               j	                  |       j                         }t        j                  d      }t        |       }|j                  ||t              j                  j                  dk(  sJ y )NsegkeyfooT)SegmentBuilderincludedr   EvaluatorBuilderwith_segmentr   r   "make_boolean_flag_matching_segmentr   r   r   value)segment	evaluatorr   r   s       r   6test_segment_match_clause_retrieves_segment_from_storera   [   s}    X&//6<<>G "//8>>@I>>% D-g6DdD-8??EEMMMr    c                     t        j                  d      } t        t        d            }t	               j                  d      j                         }|j                  || t              j                  j                  dk(  sJ y )NrX   rW   F)r   r   make_boolean_flag_with_clauses make_clause_matching_segment_keyr[   with_unknown_segmentr   r   r   r   r^   )r   r   r`   s      r   Ktest_segment_match_clause_falls_through_with_no_errors_if_segment_not_foundrf   c   se    >>% D)*J8*TUD "77AGGIIdD-8??EENNNr    N)ldclient.clientr   ldclient.evaluationr   testing.builderstesting.impl.evaluator_utilr   r#   r*   r-   r1   r3   r5   r8   rL   rN   rP   rR   rU   ra   rf    r    r   <module>rl      sk    # 0  )ZZZZZZZZZZZZZNOr    