
     j              	      (   d Z ddlmZ ddlZddlZej                  j                  ej                  j                  ej                  j                  ej                  j                  e
                        Zeej                  v rej                  j                  e       ej                  j                  de       ddlZddlmZmZmZmZmZmZ ej,                  j/                  dg d      d        Zej,                  j/                  dg d      d	        Zej,                  j/                  dg d
      d        Zej,                  j/                  dg d      d        Zd Zej,                  j/                  dg d      d        Zd Zd Zd Z d Z!y)u   tests/regression/test_task_id_parser_hardening.py — task-2485 회귀.

task-N+M (retry suffix) 형식이 parser/extractor에서 정상 인식되는지 검증.
    )annotationsN)is_valid_task_idextract_task_id
TASK_ID_RETASK_ID_PATTERNextract_task_id_from_branchextract_task_id_from_filenametid)z	task-2472ztask-1z	task-9999c                    t        |       sJ y Nr   r
   s    E/home/jay/workspace/tests/regression/test_task_id_parser_hardening.pytest_legacy_task_id_still_validr      s    C       )task-2472+1task-2472+2task-2467+3ztask-1+0c                .    t        |       s
J |  d       y )Nz should be validr   r   s    r   test_retry_suffix_validr   "   s    C :SE)9":: r   )task-abc
task-2472+task-2472++1ztask- z	TASK-2472z
task--2472c                .    t        |       r
J |  d       y )Nz should NOT be validr   r   s    r   test_invalid_task_id_rejectedr   (   s     $B-A&BB$$r   text)r   r   ztask-2472abcc                0    t        |       J d| d       y)uL   경계 위반 입력에서 task id 를 잘라서 추출하지 않아야 함.Nz
malformed u8    에서 잘라낸 추출 발생 — 경계 검사 미흡r   )r   s    r   &test_extract_task_id_rejects_malformedr    .   s)     4 ( 
THTU(r   c                 D    t        d      dk(  sJ t        d      dk(  sJ y )Nzfoo task-2472+10 barztask-2472+10zfoo task-24720 barz
task-24720r    r   r   +test_extract_task_id_boundary_no_truncationr#   7   s*    12nDDD/0L@@@r   ztext,expected))zfoo-task-2472+1-barr   )ztask/task-2467+3-dev6r   )zmemory/tasks/task-2472+2.mdr   )z[task-2472+1] retry merger   )znothing hereNc                $    t        |       |k(  sJ y r   r   )r   expecteds     r   test_extract_task_id_from_textr&   ?   s     4 H,,,r   c                 $    t        d      dk(  sJ y )Nztask/task-2472+1-dev2r   )r   r"   r   r   -test_extract_task_id_from_branch_retry_suffixr(   J   s    &'>?=PPPr   c                 $    t        d      dk(  sJ y )Nzmemory/tasks/task-2467+3.mdr   )r	   r"   r   r   /test_extract_task_id_from_filename_retry_suffixr*   N   s    ()FG=XXXr   c                     dd l } t        t        | j                        sJ t        j                  d      J t        j                  d      J y )Nr   r   r   )re
isinstancer   Patternmatch)r,   s    r   #test_TASK_ID_RE_is_compiled_patternr0   R   sG    j"**---M*666J'///r   c                     t        t        t              sJ dd l} | j	                  t              }|j                  d      J y )Nr   r   )r-   r   strr,   compiler/   )r,   ps     r   test_TASK_ID_PATTERN_is_stringr5   Z   s8    os+++


?#A77=!---r   )"__doc__
__future__r   os_ossys_syspathdirnameabspath__file___WROOTremoveinsertpytestutils.task_id_parserr   r   r   r   r   r	   markparametrizer   r   r   r    r#   r&   r(   r*   r0   r5   r"   r   r   <module>rG      s{   #   
		#((**388+;+;CHH<L<LX<V+WX	Y	TYYIIV 		  F     DE! F!
  YZ; [;
  rsC tC
 !OP QA  + --QY0.r   