
    2iu=                         S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	J
r
   " S S\ R                  5      r " S S\ R                  5      rg)	    N)Client)FAKE_TEST_API_KEY)FeatureFlagFeatureFlagResultFlagMetadata
FlagReasonc                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestFeatureFlagResult
   c                    [         R                  " SSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S 5        U R                  UR                  / SQ5        g )N	test-flagT	[1, 2, 3]         r   from_value_and_payloadassertEqualkeyenabledvariantpayloadselfresults     _/home/james-whalen/.local/lib/python3.13/site-packages/posthog/test/test_feature_flag_result.py test_from_bool_value_and_payload6TestFeatureFlagResult.test_from_bool_value_and_payload   sk    "99{
 	[1..3    c                    [         R                  " SSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S 5        U R                  UR                  SS05        g )Nr   F{"some": "value"}somevaluer   r   s     r   !test_from_false_value_and_payload7TestFeatureFlagResult.test_from_false_value_and_payload   sq    "99 3
 	[1/.&'):;r    c                    [         R                  " SSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        g )Nr   controltrueTr   r   s     r   #test_from_variant_value_and_payload9TestFeatureFlagResult.test_from_variant_value_and_payload   sk    "99F
 	[1.3.r    c                 V    [         R                  " SS S5      nU R                  U5        g )Nr   r"   )r   r   assertIsNoner   s     r    test_from_none_value_and_payload6TestFeatureFlagResult.test_from_none_value_and_payload)   s*    "992
 	&!r    c                 P   [        SSS [        SSSSS9[        SSSS9S	9n[        R                  " U5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        U R                  UR                  S
5        g )Nr   Tr   "Some string"idversiondescriptionr   test-reasonr   coder5   condition_indexr   r   r   metadatareasonSome string
r   r   r   r   from_flag_detailsr   r   r   r   r   r   flag_detailsr   s      r   test_from_boolean_flag_details4TestFeatureFlagResult.test_from_boolean_flag_details/   s    "!a[/ "q

 #44\B[1..7r    c                 N   [        SSS [        SSSSS9[        SSSS9S	9n[        R                  " US
S9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S
5        U R                  UR                  S5        g )Nr   Tr   r1   r2   r6   r   r7   r:   r(   override_match_valuer=   r>   r@   s      r   @test_from_boolean_flag_details_with_override_variant_match_valueVTestFeatureFlagResult.test_from_boolean_flag_details_with_override_variant_match_valueC   s    "!a[/ "q

 #44y
 	[1.37r    c                 R   [        SSS[        SSSSS9[        SSSS	9S
9n[        R                  " USS9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        U R                  UR                  SS05        g )Nr   Tr(   r   r"   r2   r6   r   r7   r:   rE   r#   r$   r>   r@   s      r   @test_from_boolean_flag_details_with_override_boolean_match_valueVTestFeatureFlagResult.test_from_boolean_flag_details_with_override_boolean_match_valueY   s    "!a[BU "q

 #44t
 	[1..&'):;r    c                 R   [        SSS[        SSSSS9[        SSSS	9S
9n[        R                  " USS9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        U R                  UR                  SS05        g )Nr   Tr(   r   r"   r2   r6   r   r7   r:   FrE   r#   r$   r>   r@   s      r   >test_from_boolean_flag_details_with_override_false_match_valueTTestFeatureFlagResult.test_from_boolean_flag_details_with_override_false_match_valueo   s    "!a[BU "q

 #44u
 	[1/.&'):;r    c                 T   [        SSS[        SSSSS9[        SSSS	9S
9n[        R                  " U5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  SS05        g )Nr   Tr(   r   r"   r2   r6   r   r7   r:   r#   r$   r>   r@   s      r   test_from_variant_flag_details4TestFeatureFlagResult.test_from_variant_flag_details   s    "!a[BU "q

 #44\B[1.3&'):;r    c                 R    [         R                  " S 5      nU R                  U5        g N)r   r?   r-   r   s     r   test_from_none_flag_details1TestFeatureFlagResult.test_from_none_flag_details   s     "44T:&!r    c                 N   [        SSS [        SSSS S9[        SSSS9S9n[        R                  " U5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        U R                  UR                  5        g )	Nr   Tr   r2   r6   r   r7   r:   )r   r   r   r   r?   r   r   r   r   r-   r   r@   s      r   (test_from_flag_details_with_none_payload>TestFeatureFlagResult.test_from_flag_details_with_none_payload   s    "!a[$ "q

 #44\B[1..&..)r     N)__name__
__module____qualname____firstlineno__r   r%   r*   r.   rB   rG   rJ   rM   rP   rT   rW   __static_attributes__rY   r    r   r
   r
   
   s9    4</"8(8,<,<,<("
*r    r
   c                      \ rS rSr\S 5       r\S 5       rS rS r\	R                  R                  \S5      S 5       r\	R                  R                  \S5      S 5       r\	R                  " S	5      \	R                  R                  \S5      S
 5       5       r\	R                  " S	5      \	R                  R                  \S5      S 5       5       r\	R                  " S	5      \	R                  R                  \S5      S 5       5       rSrg)TestGetFeatureFlagResult   c                     [         R                  R                  [        S5      U l        U R                  R                  5         g )Ncapture)mockpatchobjectr   capture_patchstartclss    r   
setUpClass#TestGetFeatureFlagResult.setUpClass   s/     !JJ--fi@!r    c                 8    U R                   R                  5         g rS   )rg   stopri   s    r   tearDownClass&TestGetFeatureFlagResult.tearDownClass   s     r    c                 *    [        SX5        SU l        g)zMark the failure handlerFAILTN)printfailed)r   ebatchs      r   set_fail!TestGetFeatureFlagResult.set_fail   s    far    c                 L    SU l         [        [        U R                  S9U l        g )NF)on_error)rt   r   r   rw   client)r   s    r   setUpTestGetFeatureFlagResult.setUp   s    .Gr    rc   c           
      l   SSSSSSS/SS	./S
S./SS0S.S.nU/U R                   l        U R                   R                  SSSS0S9nU R                  UR                  S5        U R                  UR
                  S 5        U R                  UR                  S5        UR                  SSSSSSSS.0 S S9  g )Nr   Beta Featureperson-flagTregionexactUSApersonr   operatorr$   typed   
propertiesrollout_percentager)   300)groupspayloadsr3   namer   activefilterssome-distinct-idperson_properties,  $feature_flag_called$feature_flag$feature_flag_responselocally_evaluated$feature/person-flag$feature_flag_payloadr   disable_geoip)r{   feature_flagsget_feature_flag_resultr   r   r   r   assert_called_with)r   patch_capture
basic_flagflag_results       r   5test_get_feature_flag_result_boolean_local_evaluationNTestGetFeatureFlagResult.test_get_feature_flag_result_boolean_local_evaluation   s     "  (0,3*/(0	' /2
 $UO

, &0L!kk99-(EAR : 
 	,,d3,,d3,,c2(("!.*.%)(,),  	) 	
r    c           
         SSSSSSS/SS	./S
S./SSSS.SSS./0SS0S.S.nU/U R                   l        U R                   R                  SSSS0S9nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  5       S5        U R                  UR                  SS05        UR                  SSSSSSSS0S.0 S S9  U R                   R                  SSSS0S9nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  5       S5        U R                  UR                  5        UR                  SSSSSSS.0 S S9  g )Nr   r   r   Tr   r   r   r   r   r   r   variants	variant-12   )r   r   z	variant-2r"   )r   multivariater   r   distinct_idr   r#   r$   r   r   r   zanother-distinct-id)r   r   r   r   )
r{   r   r   r   r   r   	get_valuer   r   r-   )r   r   r   r   another_flag_results        r   5test_get_feature_flag_result_variant_local_evaluationNTestGetFeatureFlagResult.test_get_feature_flag_result_variant_local_evaluation   s    "  (0,3*/(0	' /2
  +2F +2F!! )*=>)

8 &0L!kk99=Xu<M : 
 	,,d3,,k:..0+>,,vw.?@(("!.*5%)(3*0'):  	) 	
 #kkAA0XuDU B 
 	,44d;,44kB,668+F-556((!"!.*5%)(3	  	) 	
r    zposthog.client.flagsc                 J   SSSSS SS0SSSS	.S
.00Ul         U R                  R                  SS5      nU R                  UR                  S5        U R                  UR
                  S 5        U R                  UR                  S5        UR                  SSSSSSSSSSS.0 S S9  g )Nflagsr   Tr5   Matched condition set 1   *   r   r3   r4   r   r   r   r   r<   r;   r   r   r   Fr   r   r   r   z$feature_flag_reasonz$feature_flag_idz$feature_flag_versionr   r   )return_valuer{   r   r   r   r   r   r   r   r   patch_flagsr   s       r   +test_get_feature_flag_result_boolean_decideDTestGetFeatureFlagResult.test_get_feature_flag_result_boolean_decide@  s     (##%'@ !#%#(! $
 $ kk99-
 	,,d3,,d3,,c2(("!.*.%*(,(A$&)+),	  	) 	
r    c                    SSSSSSS0SSS	S
.S.00Ul         U R                  R                  SS5      nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  5       S5        U R                  UR                  / SQ5        UR                  SSSSSSSSS/ SQS.0 S S9  g )Nr   r   Tr   r5   r   r   r   r   r   r   r   r   r   Fr   r   )	r   r{   r   r   r   r   r   r   r   r   s       r   +test_get_feature_flag_result_variant_decideDTestGetFeatureFlagResult.test_get_feature_flag_result_variant_decidel  s     (#*%'@  #$#.! $
 $ kk99-W,,d3,,k:..0+>,,i8(("!.*5%*(3(A$%)*)2	  	) 	
r    c           
          SSSSS SS0SSSS	.S
.00Ul         U R                  R                  SS5      nU R                  U5        UR	                  SSSS SS S.0 S S9  g )Nr   r   Tr5   r   r   r   r   r   r   zno-person-flagr   r   F)r   r   r   z$feature/no-person-flagr   )r   r{   r   r-   r   r   s       r   )test_get_feature_flag_result_unknown_flagBTestGetFeatureFlagResult.test_get_feature_flag_result_unknown_flag  s     (##%'@ !#%#(! $
 $ kk990
 	+&(("!1*.%*+/	  	) 	
r    )r{   rt   N)rZ   r[   r\   r]   classmethodrk   ro   rw   r|   rd   re   rf   r   r   r   r   r   r   r^   rY   r    r   r`   r`      s(   " "
 ! !
H 
ZZvy)+
 *+
Z 
ZZvy)H
 *H
T 
ZZ&'	ZZvy)(
 * ((
T 
ZZ&'	ZZvy)'
 * ('
R 
ZZ&'	ZZvy)#
 * (#
r    r`   )unittestrd   posthog.clientr   posthog.test.test_utilsr   posthog.typesr   r   r   r   TestCaser
   r`   rY   r    r   <module>r      s@      ! 5 R Rf*H-- f*RI
x00 I
r    