
    (<i                        d Z ddlZddlZddlmZ ej
                  j                  d e ee      j                  j                  j                               ddl
mZmZmZ  G d d      Zedk(  r ej                   edg       yy)	u   
Test for task-148.1: cron 완료 알림 중복 보고 제거

Tests that team_prompts.py uses atomic file creation (open(path,'x'))
instead of check-then-act pattern to prevent duplicate reports.
    N)Path)_build_direct_prompt_build_glm_prompt	TEAM_INFOc                   @    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestAtomicDuplicatePreventionz1Test atomic duplicate prevention in team prompts.c           
      z    t        t        d   ddddddd      }d	|v sJ d
       d|v sJ d       d|v sJ d       y)z7_build_direct_prompt should use open(path,'x') pattern.	dev1-teamztask-test-148.1z3/home/jay/workspace/memory/tasks/task-test-148.1.mdnormaltimer start	timer endz5/home/jay/workspace/memory/reports/task-test-148.1.mdteamteam_idtask_idtask_file_pathleveltimer_start	timer_endreport_pathopen(str(p),'x')-Should use open(path,'x') for atomic creationproceed!Should check for 'proceed' outputFileExistsErrorShould handle FileExistsErrorNr   r   selfprompts     K/home/jay/workspace/.worktrees/task-2057-dev2/teams/dev8/test_task_148_1.py%test_direct_prompt_uses_atomic_createzCTestAtomicDuplicatePrevention.test_direct_prompt_uses_atomic_create   sg    %;'%P%!O	
 "V+\-\\+F"G$GG" F*K,KK*    c           
      z    t        t        d   ddddddd      }d	|v sJ d
       d|v sJ d       d|v sJ d       y)z4_build_glm_prompt should use open(path,'x') pattern.	dev3-teamztask-test-148.2	Test taskr   r   r   z5/home/jay/workspace/memory/reports/task-test-148.2.mdr   r   r   	task_descr   r   r   r   r   r   r   r   r   r   Nr   r   r   s     r!   "test_glm_prompt_uses_atomic_createz@TestAtomicDuplicatePrevention.test_glm_prompt_uses_atomic_create'   sg    ";'%!%!O	
 "V+\-\\+F"G$GG" F*K,KK*r#   c           
      z    t        t        d   ddddddd      }d	|vsJ d
       d|vsJ d       d|vsJ d       y)z@_build_direct_prompt should NOT have old check-then-act pattern.r
   ztask-test-148.3z3/home/jay/workspace/memory/tasks/task-test-148.3.mdr   r   r   z5/home/jay/workspace/memory/reports/task-test-148.3.mdr   #   이미 존재하는지 확인하라Should remove old check pattern4   존재하면 이미 처리된 건이니 스킵하라Should remove old skip pattern   rename하라 Should remove old rename patternNr   r   s     r!   ,test_direct_prompt_removes_old_check_patternzJTestAtomicDuplicatePrevention.test_direct_prompt_removes_old_check_pattern9   sg    %;'%P%!O	
 5FBeDeeBEVSuUuuSV+O-OO+r#   c           
      z    t        t        d   ddddddd      }d	|vsJ d
       d|vsJ d       d|vsJ d       y)z=_build_glm_prompt should NOT have old check-then-act pattern.r%   ztask-test-148.4r&   r   r   r   z5/home/jay/workspace/memory/reports/task-test-148.4.mdr'   r,   r-   r.   r/   r0   r1   Nr)   r   s     r!   )test_glm_prompt_removes_old_check_patternzGTestAtomicDuplicatePrevention.test_glm_prompt_removes_old_check_patternK   sg    ";'%!%!O	
 5FBeDeeBEVSuUuuSV+O-OO+r#   c           
      N    t        t        d   ddddddd      }d	|v sJ d
       y)z>_build_direct_prompt should include parent directory creation.r
   ztask-test-148.5z3/home/jay/workspace/memory/tasks/task-test-148.5.mdr   r   r   z5/home/jay/workspace/memory/reports/task-test-148.5.mdr   !mkdir(parents=True,exist_ok=True) Should create parent directoriesNr   r   s     r!   !test_direct_prompt_includes_mkdirz?TestAtomicDuplicatePrevention.test_direct_prompt_includes_mkdir]   s?    %;'%P%!O	
 3f<`>``<r#   c           
      N    t        t        d   ddddddd      }d	|v sJ d
       y)z;_build_glm_prompt should include parent directory creation.r%   ztask-test-148.6r&   r   r   r   z5/home/jay/workspace/memory/reports/task-test-148.6.mdr'   r6   r7   Nr)   r   s     r!   test_glm_prompt_includes_mkdirz<TestAtomicDuplicatePrevention.test_glm_prompt_includes_mkdirm   s?    ";'%!%!O	
 3f<`>``<r#   c           
      N    t        t        d   ddddddd      }d	|v sJ d
       y)z6_build_direct_prompt should use .done.clear extension.r
   ztask-test-148.7z3/home/jay/workspace/memory/tasks/task-test-148.7.mdr   r   r   z5/home/jay/workspace/memory/reports/task-test-148.7.mdr   .done.clear Should use .done.clear extensionNr   r   s     r!   'test_direct_prompt_done_clear_extensionzETestAtomicDuplicatePrevention.test_direct_prompt_done_clear_extension}   s?    %;'%P%!O	
 &J(JJ&r#   c           
      N    t        t        d   ddddddd      }d	|v sJ d
       y)z3_build_glm_prompt should use .done.clear extension.r%   ztask-test-148.8r&   r   r   r   z5/home/jay/workspace/memory/reports/task-test-148.8.mdr'   r<   r=   Nr)   r   s     r!   $test_glm_prompt_done_clear_extensionzBTestAtomicDuplicatePrevention.test_glm_prompt_done_clear_extension   s?    ";'%!%!O	
 &J(JJ&r#   N)__name__
__module____qualname____doc__r"   r*   r2   r4   r8   r:   r>   r@    r#   r!   r   r      s5    ;L$L$P$P$a a K Kr#   r   __main__z-v)rD   pytestsyspathlibr   pathinsertstr__file__parentprompts.team_promptsr   r   r   r   rA   mainrE   r#   r!   <module>rQ      s{     
  3tH~,,33::; < S SIK IKX zFKK4 ! r#   