o
    ª6£iH  ã                   @   s†   d Z ddlZddlm  mZ ddlZddlZddl	m
Z
mZmZmZmZmZmZ dd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ ZdS )zTests for config module.é    N)Ú	EnvConfigÚLANGUAGE_MAPÚSUPPORTED_LANGUAGESÚAUDIO_EVENT_TAGSÚ
get_configÚPROMPT_VERSIONÚSCHEMA_VERSIONc                  C   sd  t tƒ} d}| |k}|sQt d|fd| |f¡dt ¡ v s!t t ¡r&t t ¡nddt ¡ v s2t t¡r7t t¡ndt | ¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  }  }}t
tƒ} h d	£}| |k}|sªt d|fd| |f¡d
t ¡ v szt t
¡rt t
¡nd
dt ¡ v s‹t t¡rt t¡ndt | ¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  }  }}d S )Né   ©ú==©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenr   ©Úpy0Úpy1Úpy3Úpy6úassert %(py8)sÚpy8>   ÚasÚbnÚenÚguÚhiÚknÚmlÚmrÚorÚpaÚtaÚteÚsetr   )r   r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr!   r   )Ú@py_assert2Ú@py_assert5Ú@py_assert4Ú@py_format7Ú@py_format9© r/   ú-/home/ubuntu/transcripts/tests/test_config.pyÚ"test_language_map_has_12_languages
   s   ®¶r1   c                  C   sÌ  t  ¡ D ]^\} \}}}g }t|tƒ}|}|r#t|ƒ}d}||k}	|	}|sÀddt ¡ v s1t t¡r6t 	t¡nddt ¡ v sBt |¡rGt 	|¡nddt ¡ v sSt t¡rXt 	t¡ndt 	|¡dœ }
| 
|
¡ |r«t d|	fd||f¡d	t ¡ v s}t t¡r‚t 	t¡nd	dt ¡ v sŽt |¡r“t 	|¡ndt 	|¡t 	|¡d
œ }dd|i }| 
|¡ t |d¡i  }dd|i }tt |¡ƒ‚d  } } } } }	}g }t|tƒ}|}|rãt|ƒ}d}||k}	|	}|sŠddt ¡ v sòt t¡r÷t 	t¡nddt ¡ v st |¡r
t 	|¡nddt ¡ v st t¡rt 	t¡ndt 	|¡dœ }
| 
|
¡ |rut d|	fd||f¡d	t ¡ v sEt t¡rJt 	t¡nd	dt ¡ v sXt |¡r]t 	|¡ndt 	|¡t 	|¡d
œ }dd|i }| 
|¡ t |d¡i  }dd|i }tt |¡ƒ‚d  } } } } }	}g }t|tƒ}|}|r®t|ƒ}d}||k}	|	}|sWddt ¡ v s¿t t¡rÄt 	t¡nddt ¡ v sÒt |¡r×t 	|¡nddt ¡ v såt t¡rêt 	t¡ndt 	|¡dœ }
| 
|
¡ |rBt d|	fd||f¡d	t ¡ v st t¡rt 	t¡nd	dt ¡ v s%t |¡r*t 	|¡ndt 	|¡t 	|¡d
œ }dd|i }| 
|¡ t |d¡i  }dd|i }tt |¡ƒ‚d  } } } } }	}qd S )Nr   z.%(py6)s
{%(py6)s = %(py2)s(%(py3)s, %(py4)s)
}Ú
isinstanceÚnameÚstr)Úpy2r   Úpy4r   )ú>)z2%(py11)s
{%(py11)s = %(py8)s(%(py9)s)
} > %(py14)sr   )r   Úpy9Úpy11Úpy14z%(py16)sÚpy16zassert %(py19)sÚpy19ÚscriptÚhint)r   Úitemsr2   r4   r   r$   r%   r"   r&   r'   Úappendr#   Ú_format_boolopr(   r)   )Úcoder3   r=   r>   Ú@py_assert1r+   Ú@py_assert0Ú@py_assert10Ú@py_assert13Ú@py_assert12r-   Ú@py_format15Ú@py_format17Ú@py_format18Ú@py_format20r/   r/   r0   Ú!test_language_map_tuple_structure   s   þ‚ þ– þž ýrL   c                  C   s¢  t tƒ} d}| |k}|sQt d|fd| |f¡dt ¡ v s!t t ¡r&t t ¡nddt ¡ v s2t t¡r7t t¡ndt | ¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  }  }}d	}|tv } | st d
| fd|tf¡t |¡dt ¡ v sxt t¡r}t t¡nddœ }dd|i }tt 	|¡ƒ‚d  }} d}|tv } | sËt d
| fd|tf¡t |¡dt ¡ v s´t t¡r¹t t¡nddœ }dd|i }tt 	|¡ƒ‚d  }} d S )Né
   r
   r   r   r   r   r   r   Úlaugh)Úin)z%(py1)s in %(py3)s)r   r   zassert %(py5)sÚpy5Únoise)
r   r   r"   r#   r$   r%   r&   r'   r(   r)   )r*   r+   r,   r-   r.   rD   Ú@py_format4Ú@py_format6r/   r/   r0   Útest_audio_event_tags   s   ®x|rT   c                  C   sN  t dd} | j}d}||u }|sDt d|fd||f¡dt ¡ v s%t | ¡r*t | ¡ndt |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}|  
¡ }t|ƒ}d	}||k}|sŸt d
|fd||f¡dt ¡ v sot t¡rtt t¡nddt ¡ v s€t |¡r…t |¡ndt |¡t |¡dœ }	dd|	i }
tt 	|
¡ƒ‚d  } }}d S )NT)Ú	mock_mode)Úis)z1%(py2)s
{%(py2)s = %(py0)s.mock_mode
} is %(py5)sÚconfig)r   r5   rP   zassert %(py7)sÚpy7r   r
   r   r   Úerrorsr   r   r   )r   rU   r"   r#   r$   r%   r&   r'   r(   r)   Úvalidater   )rW   rC   r,   Ú@py_assert3rS   Ú@py_format8rY   r*   r+   r-   r.   r/   r/   r0   Útest_env_config_mock_mode   s   
Š²r]   c                  C   s<  dt jd< t j dd ¡ t j dd ¡ t j dd ¡ t j dd ¡ t j dd ¡ tƒ } d| _d	| _g | _d	| _d	| _|  	¡ }t
|ƒ}d
}||k}|st d|fd||f¡dt ¡ v s_t t
¡rdt t
¡nddt ¡ v spt |¡rut |¡ndt |¡t |¡dœ }dd|i }tt |¡ƒ‚d  } }}t j dd ¡ d S )NÚfalseÚ	MOCK_MODEÚ
GEMINI_KEYÚGEMINI_PROJECT2ÚGEMINI_PROJECT3ÚURLÚR2_ENDPOINT_URLFÚ é   )ú>=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)sr   rY   r   r   r   )ÚosÚenvironÚpopr   rU   Ú
gemini_keyÚgemini_keysÚsupabase_urlÚr2_endpoint_urlrZ   r   r"   r#   r$   r%   r&   r'   r(   r)   )rW   rY   r*   r+   r,   r-   r.   r/   r/   r0   Útest_env_config_missing_keys#   s   
®ro   c                  C   s€   t sdddt ¡ v st t ¡rt t ¡ndi } tt | ¡ƒ‚ts>dddt ¡ v s.t t¡r3t t¡ndi } tt | ¡ƒ‚d S )Nzassert %(py0)sr   r   r   )	r   r$   r%   r"   r&   r'   r(   r)   r   )Ú@py_format1r/   r/   r0   Útest_version_constants5   s   >Brq   )Ú__doc__Úbuiltinsr$   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter"   rh   ÚpytestÚ
src.configr   r   r   r   r   r   r   r1   rL   rT   r]   ro   rq   r/   r/   r/   r0   Ú<module>   s    "$