o
    ±3IhŸ  ã                   @   s6   d dl Z d dlmZmZmZmZ G dd„ de jƒZdS )é    N)ÚFeatureFlagÚFlagMetadataÚ
FlagReasonÚLegacyFlagMetadatac                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestFeatureFlagc              	   C   sš   dddddddœdd	d
ddœdœ}t  |¡}|  |jd¡ |  |j¡ |  |jd¡ |  | ¡ d¡ |  |jt	dddd¡ |  |j
td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Úflag© r#   ú^/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/posthog/test/test_feature_flag.pyÚtest_feature_flag_from_json   sF   ýü÷
ýþüþz+TestFeatureFlag.test_feature_flag_from_jsonc                 C   sn   dddœ}t  |¡}|  |jd¡ |  |j¡ |  |j¡ |  | ¡ d¡ |  |j	¡ |  |j
td d¡ d S )Nr   T©r   r   ©r   )r   r   r   r   r   r   ÚassertIsNoner   r   r   r   r   r   r#   r#   r$   Ú#test_feature_flag_from_json_minimal1   s   

z3TestFeatureFlag.test_feature_flag_from_json_minimalc                 C   sˆ   dddddddœdœ}t  |¡}|  |jd¡ |  |j¡ |  |jd¡ |  | ¡ d¡ |  |jt	dddd¡ |  |j
td 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   r#   r#   r$   Ú,test_feature_flag_from_json_without_metadata=   s,   ýü
ýþz<TestFeatureFlag.test_feature_flag_from_json_without_metadatac                 C   sŽ   ddddœ}t  |¡}|  |jd¡ |  |jd¡ |  |jd¡ ddi}t  |¡}|  |jd¡ |  |j¡ |  |jd¡ |  t  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   r#   r#   r$   Útest_flag_reason_from_jsonY   s   ý

z*TestFeatureFlag.test_flag_reason_from_jsonc                 C   s¶   dddidddœ}t  |¡}|  |jd¡ |  |jddi¡ |  |jd¡ |  |jd¡ ddi}t  |¡}|  |jd¡ |  |j¡ |  |jd¡ |  |jd	¡ |  t  d ¡t	¡ d S )
Né{   r   Úvaluer   ú	Test flagr   r   r   r-   )
r   r   r   r   r   r   r   r(   ÚassertIsInstancer   )r    r!   r   r#   r#   r$   Útest_flag_metadata_from_jsono   s"   ü

z,TestFeatureFlag.test_flag_metadata_from_jsonc              	   C   s¬   dddddddœdd	d
idddœdœ}t  |¡}|  |jd¡ |  |j¡ |  |jd¡ |  |jt	¡ |  |jj
d¡ |  |jt¡ |  |jjd¡ |  |jjd	d
i¡ d S )Nr   TÚcontrolr+   r   r,   r   r/   r   r0   r1   r   r   )r   r   r   r   r   r   r   r2   r   r   r   r   r   r   r   r   r#   r#   r$   Ú$test_feature_flag_from_json_completeˆ   s,   ýü÷
z4TestFeatureFlag.test_feature_flag_from_json_completec                 C   sf   dddœ}t  |¡}|  |jd¡ |  |j¡ |  |j¡ |  |j¡ |  	|j
t¡ |  |j
j¡ d S )Nr   Fr&   )r   r   r   r   ÚassertFalser   r(   r   r   r2   r   r   r   r   r#   r#   r$   Ú(test_feature_flag_from_json_minimal_data¤   s   

z8TestFeatureFlag.test_feature_flag_from_json_minimal_datac                 C   s~   ddddidœ}t  |¡}|  |jd¡ |  |j¡ |  |j¡ |  |j	t
¡ |  |j	jd¡ |  |jt¡ |  |jj¡ d S )Nr   Tr   r+   )r   r   r   )r   r   r   r   r   r   r(   r   r2   r   r   r   r   r   r   r   r#   r#   r$   Ú'test_feature_flag_from_json_with_reason¯   s   ý
z7TestFeatureFlag.test_feature_flag_from_json_with_reasonN)Ú__name__Ú
__module__Ú__qualname__r%   r)   r*   r.   r3   r5   r7   r8   r#   r#   r#   r$   r      s    *r   )ÚunittestÚposthog.typesr   r   r   r   ÚTestCaser   r#   r#   r#   r$   Ú<module>   s    