
    Zi                     L    d dl Z d dlmZmZmZmZ  G d de j                  ZdS )    N)FeatureFlagFlagMetadata
FlagReasonLegacyFlagMetadatac                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestFeatureFlagc           	         ddddddddd	d
ddd}t          j        |          }|                     |j        d           |                     |j                   |                     |j        d           |                     |                                d           |                     |j        t          ddd                     |                     |j
        t          dd	d
d                     d S )N	test-flagTtest-variantmatched_conditionr   Matched condition set 1codecondition_indexdescription   z{"some": "json"}   ztest-descriptionidpayloadversionr   keyenabledvariantreasonmetadata)r   	from_jsonassertEqualr   
assertTruer   r   	get_valuer   r   r   r   selfrespflags      Y/root/projects/butler/venv/lib/python3.11/site-packages/posthog/test/test_feature_flag.pytest_feature_flag_from_jsonz+TestFeatureFlag.test_feature_flag_from_json   s9    %+#$8  -1	 
 
" $T**;///%%%~666))>:::K( !5  	
 	
 	
 	M*.	  	
 	
 	
 	
 	
    c                    ddd}t          j        |          }|                     |j        d           |                     |j                   |                     |j                   |                     |                                d           |                     |j	                   |                     |j
        t          d                      d S )Nr
   Tr   r   r   )r   r   r   r   r    r   assertIsNoner   r!   r   r   r   r"   s      r&   #test_feature_flag_from_json_minimalz3TestFeatureFlag.test_feature_flag_from_json_minimal1   s    "t44$T**;///%%%$,'''))4000$+&&&(:4(H(H(HIIIIIr(   c                    dddddddd}t          j        |          }|                     |j        d           |                     |j                   |                     |j        d           |                     |                                d           |                     |j        t          ddd                     |                     |j
        t          d 	                     d S )
Nr
   Tr   r   r   r   r   )r   r   r   r   r+   )r   r   r   r   r    r   r   r!   r   r   r   r   r"   s      r&   ,test_feature_flag_from_json_without_metadataz<TestFeatureFlag.test_feature_flag_from_json_without_metadata=   s    %+#$8 		
 	
 $T**;///%%%~666))>:::K( !5  	
 	
 	
 	(:4(H(H(HIIIIIr(   c                    dddd}t          j        |          }|                     |j        d           |                     |j        d           |                     |j        d           ddi}t          j        |          }|                     |j        d           |                     |j                   |                     |j        d           |                     t          j        d                      d S )Nuser_in_segmentr   User is in segment 'beta_users'r   r    )r   r   r   r   r   r   r,   )r#   r$   r   s      r&   test_flag_reason_from_jsonz*TestFeatureFlag.test_flag_reason_from_jsonY   s    & <
 

 %d++&7888/333+-NOOO )*%d++&7888&0111+R000 	*.t4455555r(   c                 |   dddiddd}t          j        |          }|                     |j        d           |                     |j        ddi           |                     |j        d           |                     |j        d           ddi}t          j        |          }|                     |j        d           |                     |j                   |                     |j        d           |                     |j        d	           |                     t          j        d           t                     d S )
N{   r   valuer   	Test flagr   r   r   r3   )
r   r   r   r   r   r   r   r,   assertIsInstancer   )r#   r$   r   s      r&   test_flag_metadata_from_jsonz,TestFeatureFlag.test_flag_metadata_from_jsono   sA    w'&	
 
  )$//c***)E7+;<<<)1----{;;; c{)$//c***(*+++)1----r222 	l4T::<NOOOOOr(   c           	      8   ddddddddd	d
idddd}t          j        |          }|                     |j        d           |                     |j                   |                     |j        d           |                     |j        t                     |                     |j        j
        d           |                     |j        t                     |                     |j        j        d           |                     |j        j        d	d
i           d S )Nr
   Tcontrolr1   r   r2   r   r6   r   r7   r8   r   r   )r   r   r   r   r    r   r   r9   r   r   r   r   r   r   r   r"   s      r&   $test_feature_flag_from_json_completez4TestFeatureFlag.test_feature_flag_from_json_complete   s,     )#$@  !7+*	 
 
  $T**;///%%%y111dk:666)+<===dm\:::)3///.0@AAAAAr(   c                    ddd}t          j        |          }|                     |j        d           |                     |j                   |                     |j                   |                     |j                   | 	                    |j
        t                     |                     |j
        j                   d S )Nr
   Fr*   )r   r   r   r   assertFalser   r,   r   r   r9   r   r   r   r"   s      r&   (test_feature_flag_from_json_minimal_dataz8TestFeatureFlag.test_feature_flag_from_json_minimal_data   s    "u55$T**;///&&&$,'''$+&&&dm-?@@@$-/00000r(   c                    ddddid}t          j        |          }|                     |j        d           |                     |j                   |                     |j                   |                     |j	        t                     |                     |j	        j        d           |                     |j        t                     |                     |j        j                   d S )Nr
   Tr   r1   )r   r   r   )r   r   r   r   r    r   r,   r   r9   r   r   r   r   r   r   r"   s      r&   'test_feature_flag_from_json_with_reasonz7TestFeatureFlag.test_feature_flag_from_json_with_reason   s     01
 

 $T**;///%%%$,'''dk:666)+<===dm-?@@@$-/00000r(   N)__name__
__module____qualname__r'   r-   r/   r4   r:   r=   r@   rB    r(   r&   r   r      s        (
 (
 (
T
J 
J 
JJ J J86 6 6,P P P2B B B8	1 	1 	11 1 1 1 1r(   r   )unittestposthog.typesr   r   r   r   TestCaser   rF   r(   r&   <module>rJ      ss     S S S S S S S S S S S Sw1 w1 w1 w1 w1h' w1 w1 w1 w1 w1r(   