
    i                     P   d Z ddlZddlZddlZddlmZ ddlmZ ddlZej                  j                  d e ee      j                  j                  j                               ddlmZmZmZ  G d d      Z G d d	      Z G d
 d      Zedk(  r ej,                  edg       yy)u)   utils/bot_activity.py 테스트 스위트    N)Path)patch)TEAM_TO_BOTget_bot_statusset_bot_statusc                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestSetBotStatusu   set_bot_status() 테스트c           	         ddl m} |dz  dz  dz  }|j                  j                  d       |j	                  t        j                  dd	d
ddii             ||_        |j                  dd       t        j                  |j                               }|d   d	   d   dk(  sJ |d   d	   d   j                  d      sJ y)u!   status를 processing으로 설정r   Nmemoryeventsbot-activity.jsonTparentsbotsdev1idle2026-03-01T00:00:00Zstatussince	dev1-team
processingr   r   2026-03utils.bot_activitybot_activityparentmkdir
write_textjsondumpsBOT_ACTIVITY_FILEr   loads	read_text
startswithselftmp_pathbabot_activity_filedatas        N/home/jay/workspace/.worktrees/task-2116-dev1/utils/tests/test_bot_activity.pytest_set_bot_status_processingz/TestSetBotStatus.test_set_bot_status_processing   s    '$x/(:=PP  &&t&4$$JJ6<R S	
  1
+|4 zz+5578F|F#H-===F|F#G,77	BBB    c           	         ddl m} |dz  dz  dz  }|j                  j                  d       |j	                  t        j                  dd	d
ddii             ||_        |j                  dd       t        j                  |j                               }|d   d	   d   dk(  sJ |d   d	   d   j                  d      sJ y)u   status를 idle로 설정r   Nr   r   r   Tr   r   dev2r   r   r   	dev2-teamr   r   r   r   r   r&   s        r,   test_set_bot_status_idlez)TestSetBotStatus.test_set_bot_status_idle/   s    '$x/(:=PP  &&t&4$$JJ<BX Y	
  1
+v.zz+5578F|F#H-777F|F#G,77	BBBr.   c                     ddl m} |dz  dz  dz  }||_        |j                  dd       |j	                         sJ t        j                  |j                               }|d   d	   d
   dk(  sJ y)u   파일이 없으면 생성r   Nr   r   r   	dev3-teamr   r   dev3r   )r   r   r"   r   existsr    r#   r$   r&   s        r,    test_set_bot_status_creates_filez1TestSetBotStatus.test_set_bot_status_creates_fileF   sy    '$x/(:=PP0
+|4 '')))zz+5578F|F#H-===r.   c                 >   ddl m} |dz  dz  dz  }|j                  j                  d       dd	d
ddii}|j	                  t        j                  |             ||_        |j                  dd       t        j                  |j                               }||k(  sJ y)u   알 수 없는 팀은 무시r   Nr   r   r   Tr   r   r   r   r   r   zunknown-teamr   )r   r   r   r   r   r    r!   r"   r   r#   r$   )r'   r(   r)   r*   original_contentr+   s         r,    test_set_bot_status_unknown_teamz1TestSetBotStatus.test_set_bot_status_unknown_teamS   s    '$x/(:=PP  &&t&4"VI_-`$ab$$TZZ0@%AB0
.,7 zz+5578''''r.   c                     ddl m} |dz  dz  dz  }|j                  j                  d       |j	                  d       ||_        |j                  d	d
       y)u,   예외 발생 시 무시 (파일 손상 등)r   Nr   r   r   Tr   invalid json {r   r   )r   r   r   r   r   r"   r   )r'   r(   r)   r*   s       r,   %test_set_bot_status_handles_exceptionz6TestSetBotStatus.test_set_bot_status_handles_exceptionc   s[    '$x/(:=PP  &&t&4$$%560 	+|4r.   N)	__name__
__module____qualname____doc__r-   r2   r7   r:   r=    r.   r,   r	   r	      s     $C4C.>( 5r.   r	   c                   (    e Zd ZdZd Zd Zd Zd Zy)TestGetBotStatusu   get_bot_status() 테스트c           	          ddl m} |dz  dz  dz  }|j                  j                  d       |j	                  t        j                  dd	d
ddii             ||_        |j                  d      }|J |d   d
k(  sJ y)u   봇 상태 조회 성공r   Nr   r   r   Tr   r   r   r   z2026-03-17T00:00:00Zr   r   r   	r   r   r   r   r   r    r!   r"   r   r'   r(   r)   r*   results        r,   test_get_bot_status_existsz+TestGetBotStatus.test_get_bot_status_existst   s    '$x/(:=PP  &&t&4$$JJ<BX Y	
  1"";/!!!h<///r.   c                     ddl m} |dz  dz  dz  }|j                  j                  d       |j	                  t        j                  di i             ||_        |j                  d	      }|J y)
u   봇이 없으면 None 반환r   Nr   r   r   Tr   r   r   rF   rG   s        r,   test_get_bot_status_not_existsz/TestGetBotStatus.test_get_bot_status_not_exists   so    '$x/(:=PP  &&t&4$$TZZ%=>0"";/~~r.   c                 R    ddl m} |dz  }||_        |j                  d      }|J y)u   파일이 없으면 None 반환r   Nznonexistent.jsonr   )r   r   r"   r   rG   s        r,   #test_get_bot_status_file_not_existsz4TestGetBotStatus.test_get_bot_status_file_not_exists   s3    '$'990"";/~~r.   c                     ddl m} |dz  dz  dz  }|j                  j                  d       |j	                  d       ||_        |j                  d	      }|J y)
u   예외 발생 시 None 반환r   Nr   r   r   Tr   r<   r   )r   r   r   r   r   r"   r   rG   s        r,   %test_get_bot_status_handles_exceptionz6TestGetBotStatus.test_get_bot_status_handles_exception   sc    '$x/(:=PP  &&t&4$$%560"";/~~r.   N)r>   r?   r@   rA   rI   rK   rM   rO   rB   r.   r,   rD   rD   q   s    $0,r.   rD   c                   @    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestTeamToBotMappingu   TEAM_TO_BOT 매핑 테스트c                      t         d   dk(  sJ y)u   dev1-team → dev1r   r   Nr   r'   s    r,   test_dev1_team_maps_to_dev1z0TestTeamToBotMapping.test_dev1_team_maps_to_dev1       ;'6111r.   c                      t         d   dk(  sJ y)u   dev2-team → dev2r1   r0   NrS   rT   s    r,   test_dev2_team_maps_to_dev2z0TestTeamToBotMapping.test_dev2_team_maps_to_dev2   rV   r.   c                      t         d   dk(  sJ y)u   dev3-team → dev3r4   r5   NrS   rT   s    r,   test_dev3_team_maps_to_dev3z0TestTeamToBotMapping.test_dev3_team_maps_to_dev3   rV   r.   c                      t         d   dk(  sJ y)u   dev4-team → dev4z	dev4-teamdev4NrS   rT   s    r,   test_dev4_team_maps_to_dev4z0TestTeamToBotMapping.test_dev4_team_maps_to_dev4   rV   r.   c                      t         d   dk(  sJ y)u   dev5-team → dev5z	dev5-teamdev5NrS   rT   s    r,   test_dev5_team_maps_to_dev5z0TestTeamToBotMapping.test_dev5_team_maps_to_dev5   rV   r.   c                      t         d   dk(  sJ y)u   dev6-team → dev6z	dev6-teamdev6NrS   rT   s    r,   test_dev6_team_maps_to_dev6z0TestTeamToBotMapping.test_dev6_team_maps_to_dev6   rV   r.   c                      t         d   dk(  sJ y)u   dev7-team → dev7z	dev7-teamdev7NrS   rT   s    r,   test_dev7_team_maps_to_dev7z0TestTeamToBotMapping.test_dev7_team_maps_to_dev7   rV   r.   c                      t         d   dk(  sJ y)u   dev8-team → dev8z	dev8-teamdev8NrS   rT   s    r,   test_dev8_team_maps_to_dev8z0TestTeamToBotMapping.test_dev8_team_maps_to_dev8   rV   r.   N)r>   r?   r@   rA   rU   rX   rZ   r]   r`   rc   rf   ri   rB   r.   r,   rQ   rQ      s-    &22222222r.   rQ   __main__z-v)rA   r    systempfilepathlibr   unittest.mockr   pytestpathinsertstr__file__r   r   r   r   r   r	   rD   rQ   r>   mainrB   r.   r,   <module>ru      s    /  
     3tH~,,33::; < J J\5 \5~; ;|!2 !2H zFKK4 ! r.   