
    %Wi                         d dl Z d dlZe j                  j                  d ej                  j	                  ej                  j                  e      d             d dlZ G d d      Z G d d      Z	 G d d      Z
y)	    Nz..c                       e Zd ZdZd Zd Zy)TestConfigTokenLoadingu=   환경변수에서 토큰을 정상 로드하는지 테스트c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= dd	lm} |dk(  sJ y
)ub   GEMINI_BOT_TOKEN 환경변수가 설정되어 있으면 config에서 정상 로드되어야 한다GEMINI_BOT_TOKENtest-gemini-bot-token-123CODEX_BOT_TOKENtest-codex-bot-token-456CLAUDE_BOT_TOKENtest-claude-bot-token-789configr   )r   N)setenvsysmodulesr   r   )selfmonkeypatchr   s      @/home/jay/workspace/services/multimodel-bot/tests/test_config.py%test_gemini_bot_token_loaded_from_envz<TestConfigTokenLoading.test_gemini_bot_token_loaded_from_env   sb    -/JK,.HI-/JKs{{"H%+#>>>>    c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= dd	lm} |dk(  sJ y
)ua   CODEX_BOT_TOKEN 환경변수가 설정되어 있으면 config에서 정상 로드되어야 한다r   r   r   r	   r
   r   r   r   )r   N)r   r   r   r   r   )r   r   r   s      r   $test_codex_bot_token_loaded_from_envz;TestConfigTokenLoading.test_codex_bot_token_loaded_from_env   sb    -/JK,.HI-/JKs{{"H%*"<<<<r   N)__name__
__module____qualname____doc__r   r    r   r   r   r   	   s    G?=r   r   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestConfigDefaultsu   기본값 설정 테스트c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= ddlm} t        |t              sJ |dkD  sJ y)	u>   OWNER_USER_ID 기본값이 올바르게 설정되어야 한다r   dummy-tokenr   r
   r   r   OWNER_USER_IDNr   r   r   r   r!   
isinstanceintr   r   r!   s      r   test_owner_user_id_defaultz-TestConfigDefaults.test_owner_user_id_default*   sp    -}=,m<-}=s{{"H%( ----q   r   c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= ddlm} t        |t              sJ |dkD  sJ y)	u<   CLI_TIMEOUT 기본값이 올바르게 설정되어야 한다r   r   r   r
   r   r   CLI_TIMEOUTN)r   r   r   r   r)   r#   r$   r   r   r)   s      r   test_cli_timeout_defaultz+TestConfigDefaults.test_cli_timeout_default9   sn    -}=,m<-}=s{{"H%& +s+++Qr   c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= ddlm} |dk(  sJ y	)
uK   MAX_MESSAGE_LENGTH 기본값이 텔레그램 제한인 4096이어야 한다r   r   r   r
   r   r   )MAX_MESSAGE_LENGTHi   N)r   r   r   r   r-   )r   r   r-   s      r   test_max_message_length_defaultz2TestConfigDefaults.test_max_message_length_defaultH   s^    -}=,m<-}=s{{"H%-!T)))r   c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= ddlm} |dk\  sJ y	)
u)   CLI_TIMEOUT은 양의 정수여야 한다r   r   r   r
   r   r   r(      N)r   r   r   r   r)   r*   s      r   $test_cli_timeout_is_positive_integerz7TestConfigDefaults.test_cli_timeout_is_positive_integerU   s^    -}=,m<-}=s{{"H%&ar   c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= ddlm} t        |t              sJ y)	u*   OWNER_USER_ID는 정수형이어야 한다r   r   r   r
   r   r   r    Nr"   r%   s      r   test_owner_user_id_is_integerz0TestConfigDefaults.test_owner_user_id_is_integerb   s`    -}=,m<-}=s{{"H%(----r   N)	r   r   r   r   r&   r+   r.   r1   r3   r   r   r   r   r   '   s    $!* .r   r   c                       e Zd ZdZd Zd Zy)TestConfigMissingEnvVarsu6   필수 환경변수 누락 시 에러 발생 테스트c                     |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= t        j                  t
              5  ddl}ddd       y# 1 sw Y   yxY w)	uJ   GEMINI_BOT_TOKEN 환경변수가 없으면 KeyError가 발생해야 한다r   Fraisingr   r
   r   r   N)delenvr   r   pytestraisesKeyErrorr   r   r   r   s      r   .test_missing_gemini_bot_token_raises_key_errorzGTestConfigMissingEnvVars.test_missing_gemini_bot_token_raises_key_errors   sz    -u=,e<-u=s{{"H%]]8$ 		 	 	s   6BBc                    |j                  dd       |j                  dd       |j                  dd       dt        j                  v rt        j                  d= t	        j
                  t              5  dd	l}d	d	d	       y	# 1 sw Y   y	xY w)
uI   CODEX_BOT_TOKEN 환경변수가 없으면 KeyError가 발생해야 한다r   r   r
   r   Fr7   r   r   N)r   r9   r   r   r:   r;   r<   r   r=   s      r   -test_missing_codex_bot_token_raises_key_errorzFTestConfigMissingEnvVars.test_missing_codex_bot_token_raises_key_error   st    -}=-}=,e<s{{"H%]]8$ 		 	 	s   4BBN)r   r   r   r   r>   r@   r   r   r   r5   r5   p   s    @

r   r5   )r   ospathinsertjoindirname__file__r:   r   r   r5   r   r   r   <module>rG      s]    
 	 277<< 94@ A = =<F. F.R r   