
    ~i%                        d Z ddlmZ ddlZddlmc 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y)u   
test_enqueue_merge.py — enqueue_pr dry_run 회귀 테스트.

- bot author + human APPROVED → DRY_RUN outcome, audit jsonl +1, mergeable=MERGEABLE
    )annotationsN)Path   c                   |j                  dt        |              |j                  dd       |j                  dd       |j                  dt        j                  ddid	d
g             |j	                  t
        j                  dd       |j	                  t
        j                  dd       ddlm} | dz  dz  dz  }|j                  |d|        |j                  |d|       d}|j                         r7t        |j                  d      j                         j                               }|j                  ddd      }|d   }d}||k(  }|st!        j"                  d|fd||f      t!        j$                  |      t!        j$                  |      dz  }	t!        j&                  d |d          d!z   d"|	iz  }
t)        t!        j*                  |
            dx}x}}|j-                  d#i       }|j,                  }d$} ||      }d%}||k(  }|st!        j"                  d|fd&||f      d#t/        j0                         v st!        j2                  |      rt!        j$                  |      nd#t!        j$                  |      t!        j$                  |      t!        j$                  |      t!        j$                  |      d'z  }t!        j&                  d(|j-                  d$             d)z   d*|iz  }t)        t!        j*                  |            dx}x}x}x}}|j,                  }d+} ||      }d}||k(  }|st!        j"                  d|fd&||f      d#t/        j0                         v st!        j2                  |      rt!        j$                  |      nd#t!        j$                  |      t!        j$                  |      t!        j$                  |      t!        j$                  |      d'z  }t!        j&                  d,|j-                  d+             d)z   d*|iz  }t)        t!        j*                  |            dx}x}x}x}}|j                  } |       }|st!        j&                  d-|       d.z   d/t/        j0                         v st!        j2                  |      rt!        j$                  |      nd/t!        j$                  |      t!        j$                  |      d0z  }	t)        t!        j*                  |	            dx}}t        |j                  d      j                         j                               }d1}||z   }||k(  }|st!        j"                  d|fd2||f      d3t/        j0                         v st!        j2                  |      rt!        j$                  |      nd3d4t/        j0                         v st!        j2                  |      rt!        j$                  |      nd4t!        j$                  |      d0z  }t!        j&                  d5|d1z    d6|       d7z   d8|iz  }t)        t!        j*                  |            dx}x}}|j                  d      j                         j                         d9   }t        j4                  |      }|d   }d}||k(  }|slt!        j"                  d|fd||f      t!        j$                  |      t!        j$                  |      dz  }	d:d"|	iz  }
t)        t!        j*                  |
            dx}x}}|d;   }d}||u }|slt!        j"                  d<|fd=||f      t!        j$                  |      t!        j$                  |      dz  }	d:d"|	iz  }
t)        t!        j*                  |
            dx}x}}|d>   }d}||k(  }|slt!        j"                  d|fd||f      t!        j$                  |      t!        j$                  |      dz  }	d:d"|	iz  }
t)        t!        j*                  |
            dx}x}}|d+   }d}||k(  }|slt!        j"                  d|fd||f      t!        j$                  |      t!        j$                  |      dz  }	d:d"|	iz  }
t)        t!        j*                  |
            dx}x}}|d$   }d%}||k(  }|slt!        j"                  d|fd||f      t!        j$                  |      t!        j$                  |      dz  }	d:d"|	iz  }
t)        t!        j*                  |
            dx}x}}y)?uX   enqueue_pr(99, dry_run=True) + bot author + human APPROVED → DRY_RUN + audit jsonl +1.WORKSPACE_ROOTTASKCTL_TEST_MODE1TASKCTL_PR_AUTHOR_OVERRIDEzjeon-jonghyuk-taskctl-bot[bot]TASKCTL_PR_REVIEWS_OVERRIDEloginzjonghyuk-jeonAPPROVED)authorstatezutils.merge_queue_clientF)raisingzutils.bot_pr_authorr   Nmemoryzorchestration-auditzmerge-queue.jsonl	WORKSPACEMERGE_QUEUE_LOGzutf-8)encodingc   T)no_admin_overridedry_runoutcomeDRY_RUN)==)z%(py1)s == %(py4)s)py1py4zexpected DRY_RUN, got: z
>assert %(py6)spy6audit_entry	mergeable	MERGEABLE)zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} == %(py9)s)py0py2r   r   py9zmergeable mismatch: z
>assert %(py11)spy11reviewerzreviewer mismatch: zMERGE_QUEUE_LOG not created: zC
>assert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}log_path)r!   r"   r      )z%(py0)s == (%(py2)s + %(py4)s)lines_afterlines_beforez	expected z lines, got z
>assert %(py7)spy7zassert %(py6)sr   )is)z%(py1)s is %(py4)s	pr_number)setenvstrjsondumpsdelitemsysmodulesutils.merge_queue_clientmerge_queue_clientsetattrexistslen	read_textstrip
splitlines
enqueue_pr
@pytest_ar_call_reprcompare	_saferepr_format_assertmsgAssertionError_format_explanationget@py_builtinslocals_should_repr_global_nameloads)tmp_pathmonkeypatchmqcr&   r)   result@py_assert0@py_assert3@py_assert2@py_format5@py_format7r   @py_assert1@py_assert5@py_assert8@py_assert7@py_format10@py_format12r(   @py_format6@py_format8	last_lineentrys                          Q/home/jay/workspace/.worktrees/task-2481-dev4/tests/scripts/test_enqueue_merge.py test_enqueue_merge_dry_run_auditr]      s   'X7*C035UV%

9JOPQ %?O%:EJ*("%::=PPH[(3.9 L8--w-?EEGRRTU^^B$^EF )X	X	)XXX	XXXXXX	XXX-DVIEVDW+XXXXXXXX **]B/K?? ; ?;' ; ';6  ';                  '    (    ,7    {{;<=      ?? : ?:& / &/9  &/                  &    '    +:    kooj9:;     
 ??H?HHH =hZHHHHHHH8HHH8HHH?HHHHHHHHHh(('(:@@BMMOPK)* ,* ;**  ;*                '    '    *+    L1$%\+?    
 ""G"4::<GGI"MIJJy!E(y(y((((y((((((y(((((((#t#t####t######t##########################///////////////////,,,,,,,,,,,,,,,,,,,    )rI   r   rJ   zpytest.MonkeyPatchreturnNone)__doc__
__future__r   builtinsrE   _pytest.assertion.rewrite	assertionrewriter>   r0   r3   pathlibr   pytestr/   __file__resolveparents_WORKTREE_ROOTpathinsertr]    r^   r\   <module>rp      sf   
 #    
   T(^++-55a89!HHOOA~&6-r^   