
    ~i                        d Z ddlmZ ddlZddlZddlmZ ddlZ e ee	      j                         j                  d         Zeej                  vrej                  j                  de       d	dZd
dZd
dZy)u   
test_handoff_to_bot.py — handoff_pr_to_bot 회귀 테스트.

1. dry_run=True 시 mapping dict 반환 + HANDOFF_LOG jsonl append
2. dry_run 2회 호출 → jsonl 라인 2개, 1회차 라인 보존(append-only)
    )annotationsN)Path   c                 "    ~ ~ddidddiddigdS )Nlogin
human-userzfeat-xoidabc1def2)authorheadRefNamecommits )argskwargss     R/home/jay/workspace/.worktrees/task-2481-dev4/tests/scripts/test_handoff_to_bot.py_fake_pr_viewr      s,    fL)FOeV_5     c                   |j                  dt        |              |j                  t        j                  dd       ddlm} | dz  dz  d	z  }|j                  |d
|        |j                  |d|       |j                  ddt              }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   du sJ |j                         s
J d|        |j                  d      j                         j                         }t        |      dk(  sJ dt        |              t        j                   |d         }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   du sJ |d   ddgk(  sJ d|d           y)uJ   dry_run=True 호출 → mapping dict 정확히 반환 + jsonl 1건 append.WORKSPACE_ROOTutils.handoff_to_botFraisingr   Nmemoryorchestration-audithandoff-to-bot.jsonl	WORKSPACEHANDOFF_LOG*   Tdry_runpr_view_funcoriginal_proriginal_authorr   
new_branchztask/handoff-42-botr!   zHANDOFF_LOG not created: utf-8encoding   zexpected 1 jsonl line, got original_commitsr
   r   zoriginal_commits mismatch: )setenvstrdelitemsysmodulesutils.handoff_to_bothandoff_to_botsetattrhandoff_pr_to_botr   exists	read_textstrip
splitlineslenjsonloads)tmp_pathmonkeypatchhblog_pathresultlinesentrys          r   +test_handoff_to_bot_dry_run_creates_mappingrB      s   'X7 %;UK% ("%::=SSHK2M84!!
" " F - B&&&#$444,#8888)$$$ ??D 9(DD0668CCEEu:?F9#e*FF?JJuQx E2%%%"#|333"7777t####$(88 
%e,>&?%@A8r   c                   |j                  dt        |              |j                  t        j                  dd       ddlm} | dz  dz  d	z  }|j                  |d
|        |j                  |d|       |j                  ddt               |j                  d      j                         j                         }|d   }|j                  ddt               |j                  d      j                         j                         }t        |      dk(  sJ dt        |              |d   |k(  sJ d| d|d           y)uW   dry_run 2회 호출 → jsonl 2라인, 1회차 라인이 그대로 유지(append-only).r   r   Fr   r   Nr   r   r   r   r   r   Tr    r&   r'   r   z*expected 2 jsonl lines after 2 calls, got z91st line was modified (append-only violation):
  before: z
  after:  )r+   r,   r-   r.   r/   r0   r1   r2   r3   r   r5   r6   r7   r8   )r;   r<   r=   r>   lines_after_first
first_linelines_after_seconds          r   +test_handoff_to_bot_audit_jsonl_append_onlyrG   H   sY   'X7%;UK%("%::=SSHK2M84 TF **G*<BBDOOQ"1%J TF!++W+=CCEPPR!"a' 
4S9K5L4MN' a J. L !'*+	-.r   )r   objectr   rH   returndict)r;   r   r<   zpytest.MonkeyPatchrI   None)__doc__
__future__r   r9   r.   pathlibr   pytestr,   __file__resolveparents_WORKTREE_ROOTpathinsertr   rB   rG   r   r   r   <module>rV      sm    #  
   T(^++-55a89!HHOOA~&'Tr   