
    Ki                     N    S SK r S SKJrJrJrJr   " S S\ R                  5      rg)    N)FeatureFlagFlagMetadata
FlagReasonLegacyFlagMetadatac                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestFeatureFlag   c           
         SSSSSSS.SS	S
SS.S.n[         R                  " U5      nU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  S5        U R                  UR                  5       S5        U R                  UR                  [        SSSS95        U R                  UR                  [        SS	S
SS95        g )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      `/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/posthog/test/test_feature_flag.pytest_feature_flag_from_json+TestFeatureFlag.test_feature_flag_from_json   s     %+#$8 -1	
" $$T*;/%~6)>:KK( !5	
 	MM*.		
    c                    SSS.n[         R                  " U5      nU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  5        U R                  UR                  5       S5        U R                  UR                  5        U R                  UR                  [        S S95        g )Nr   Tr   r   r   )r   r   r    r   r!   r   assertIsNoner   r"   r   r   r   r#   s      r'   #test_feature_flag_from_json_minimal3TestFeatureFlag.test_feature_flag_from_json_minimal1   s    "t4$$T*;/%$,,')40$++&(:4(HIr*   c           	         SSSSSSS.S.n[         R                  " U5      nU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  S5        U R                  UR                  5       S5        U R                  UR                  [        SSSS95        U R                  UR                  [        S S	95        g )
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_metadata<TestFeatureFlag.test_feature_flag_from_json_without_metadata=   s     %+#$8		
 $$T*;/%~6)>:KK( !5	
 	(:4(HIr*   c                    SSSS.n[         R                  " U5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        SS0n[         R                  " U5      nU R                  UR                  S5        U R                  UR                  5        U R                  UR
                  S5        U R                  [         R                  " S 5      5        g )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_json*TestFeatureFlag.test_flag_reason_from_jsonY   s     & <

 %%d+&78//3++-NO )*%%d+&78&001++R0 	*..t45r*   c                    SSS0SSS.n[         R                  " U5      nU R                  UR                  S5        U R                  UR                  SS05        U R                  UR
                  S5        U R                  UR                  S5        SS0n[         R                  " U5      nU R                  UR                  S5        U R                  UR                  5        U R                  UR
                  S5        U R                  UR                  S	5        U R                  [         R                  " S 5      [        5        g )
N{   r   valuer   	Test flagr   r   r   r7   )
r   r   r    r   r   r   r   r.   assertIsInstancer   )r$   r%   r   s      r'   test_flag_metadata_from_json,TestFeatureFlag.test_flag_metadata_from_jsono   s    w'&	
  ))$/c*))E7+;<))1---{; c{))$/c*(**+))1---r2 	l44T:<NOr*   c           	      d   SSSSSSS.SS	S
0SSS.S.n[         R                  " U5      nU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  S5        U R                  UR                  [        5        U R                  UR                  R                  S5        U R                  UR                  [        5        U R                  UR                  R                  S5        U R                  UR                  R                  S	S
05        g )Nr   Tcontrolr5   r   r6   r   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_complete4TestFeatureFlag.test_feature_flag_from_json_complete   s      )#$@ !7+*	
  $$T*;/%y1dkk:6))+<=dmm\:))3/..0@Ar*   c                    SSS.n[         R                  " U5      nU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  [        5        U R                  UR                  R                  5        g )Nr   Fr,   )r   r   r    r   assertFalser   r.   r   r   r>   r   r   r   r#   s      r'   (test_feature_flag_from_json_minimal_data8TestFeatureFlag.test_feature_flag_from_json_minimal_data   s    "u5$$T*;/&$,,'$++&dmm-?@$--//0r*   c                    SSSS0S.n[         R                  " U5      nU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  5        U R                  UR                  [        5        U R                  UR                  R                  S5        U R                  UR                  [        5        U R                  UR                  R                  5        g )Nr   Tr   r5   )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_with_reason7TestFeatureFlag.test_feature_flag_from_json_with_reason   s     01

 $$T*;/%$,,'dkk:6))+<=dmm-?@$--//0r*    N)__name__
__module____qualname____firstlineno__r(   r/   r2   r8   r?   rC   rG   rJ   __static_attributes__rL   r*   r'   r   r      s/    (
T
JJ86,P2B8	11r*   r   )unittestposthog.typesr   r   r   r   TestCaser   rL   r*   r'   <module>rU      s"     S Sw1h'' w1r*   