
    i                         d Z ddlZddlZddlmZ ej
                  j                  dd       dededdfdZd	 Z	d
 Z
d Zd Zd Zd Zy)uV   
통합 테스트: dispatch.py - check_batch_completion
task-1837_5.1 - 엔키 작성
    N)Pathz/home/jay/workspacetmp_pathdatareturnc                     | dz  }|j                  dd       |dz  j                  t        j                  |      d       y)u0   task-timers.json을 tmp_path/memory/ 에 작성.memoryTparentsexist_okztask-timers.jsonzutf-8)encodingN)mkdir
write_textjsondumps)r   r   r   s      X/home/jay/workspace/.worktrees/task-2116-dev1/tests/integration/test_batch_completion.py_write_timersr      s>     F
LLL-  ,,TZZ-=,P    c                     dddddii}t        | |       ddl}|j                  |d|        |j                  d	      }|d
   du sJ |d   dk(  sJ |d   dk(  sJ |d   g k(  sJ y)uI   batch_id가 없는 경우 complete=False, total=0을 반환해야 한다.taskstask-1batch-otherdonebatch_idstatusr   N	WORKSPACEzbatch-notexistcompleteFtotalpendingr   dispatchsetattrcheck_batch_completionr   monkeypatchr   _dresults        r   *test_batch_completion_no_matching_batch_idr(      s     	=FC
D
 (D!K2&&'78F*&&&'?a&>Q)"""r   c                     dddddddddddi}t        | |       d	d
l}|j                  |d|        |j                  d      }|d   du sJ |d   dk(  sJ |d   dk(  sJ |d   g k(  sJ y
)uI   모든 task가 done/completed이면 complete=True를 반환해야 한다.r   batch-1r   r   	completedr   running)r   task-2task-3r   Nr   r   Tr      r   r    r$   s        r   test_batch_completion_all_doner0   )   s     	#,?#,D#0IF
D (D!K2&&y1F*%%%'?a&>Q)"""r   c                     ddddddddi}t        | |       ddl}|j                  |d	|        |j                  d      }|d
   du sJ |d   dk(  sJ |d   dk(  sJ d|d   v sJ y)ua   일부 task가 running이면 complete=False, pending에 해당 task_id가 포함되어야 한다.r   r*   r   r   r,   )r   r-   r   Nr   r   Fr   r/      r-   r   r    r$   s        r   "test_batch_completion_some_runningr3   >   s     	#,?#,	B
D (D!K2&&y1F*&&&'?a&>Qvi((((r   c                     | dz  j                  dd       ddl}|j                  |d|        |j                  d      }|d   d	u sJ |d
   dk(  sJ |d   dk(  sJ |d   g k(  sJ y)uM   task-timers.json이 없으면 complete=False, total=0을 반환해야 한다.r   Tr	   r   Nr   r*   r   Fr   r   r   )r   r!   r"   r#   )r   r%   r&   r'   s       r   $test_batch_completion_no_timers_filer5   R   s    t< K2&&y1F*&&&'?a&>Q)"""r   c                    ddddddddddddddi}t        | |       d	d
l}|j                  |d|        |j                  d      }|d   du sJ |d   dk(  sJ |d   dk(  sJ t	        |d         dk(  sJ d|d   v sJ d|d   v sJ y
)uG   done/completed/running 혼합 시 정확한 카운팅을 해야 한다.r   zbatch-2r   r   r+   r,   reserved)r   r-   r.   task-4r   Nr   r   Fr      r/   r   r.   r8   )r   r!   r"   r#   lenr$   s        r   $test_batch_completion_mixed_statusesr;   a   s     	#,?#,D#,	B#,
C	
D (D!K2&&y1F*&&&'?a&>Qvi !Q&&&vi((((vi((((r   c                     dddddii}t        | |       ddl}|j                  |d|        |j                  d      }|d	   d
u sJ |d   dk(  sJ |d   dk(  sJ d|d   v sJ y)uN   단일 task가 running이면 complete=False, pending에 해당 task_id 포함.r   z	task-soloz
batch-solor,   r   r   Nr   r   Fr   r2   r   r   r    r$   s        r   )test_batch_completion_single_task_runningr=   y   s     	liH
D
 (D!K2&&|4F*&&&'?a&>Q&++++r   )__doc__r   syspathlibr   pathinsertdictr   r(   r0   r3   r5   r;   r=    r   r   <module>rE      sd   
  
  ( )QD Q Q Q#&#*)(#)0,r   