
    i)                     j   d Z ddlZddlmc mZ ddlZddlm	Z	m
Z
mZ 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ej                  j                  dg d      d        Zy)uH   task-2487+1 회귀 테스트: SSOT compat API + legacy dot-phase 호환.    N)is_valid_task_idis_valid_task_id_with_legacyTASK_ID_V2_PATTERNc                     d} t         j                  }|| k(  }|st        j                  d|fd|| f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }dd|iz  }t        t        j                  |            d x}}y )	NzZ^task-(?P<num>\d+)(?:_(?P<phase>\d+\.\d+))?(?:_(?P<parallel>[a-z]))?(?:\+(?P<retry>\d+))?$)==)z/%(py2)s
{%(py2)s = %(py0)s.pattern
} == %(py4)sr   expectedpy0py2py4zassert %(py6)spy6)
r   pattern
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)r   @py_assert1@py_assert3@py_format5@py_format7s        Z/home/jay/workspace/.worktrees/task-2487+1-dev2/tests/regression/test_task_id_parser_v3.pytest_v2_pattern_unchangedr      s    	;  %%1%1111%111111111111%1111111111111111    tid)task-2485+1task-2487+1task-9.1ztask-648.1.dev1task-648.1.dev1.donetask-1234.5ztask-9.1.donetask-2469_1.2_a+3	task-2469ztask-2469_1.2ztask-2469_1.2_aztask-2469+0c                    t        |       }|st        j                  d|  d      dz   dt        j                         v st        j
                  t               rt        j                  t               nddt        j                         v st        j
                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d }y )Nzcompat regression: z should PASSz.
>assert %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
}r   r   r
   py1py3)	r   r   _format_assertmsgr   r   r   r   r   r   )r   @py_assert2@py_format4s      r   test_compat_acceptsr-      s     (,U,UU0CC5.UUUUUUU'UUU'UUUUUUUUUUUU,UUUUUUr   invalid) z
not-a-taskztask-ztask-abcz	Task-2487ztask-2487!1z task-2487 c                    | j                         dk(  ry t        |       }| }|st        j                  d| d      dz   dt	        j
                         v st        j                  t              rt        j                  t              nddt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}}y )Nz	task-2487zcompat: z should REJECTz2
>assert not %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
}r   r.   r'   )
stripr   r   r*   r   r   r   r   r   r   )r.   r+   @py_assert4r   s       r   test_compat_rejectsr3   %   s     }}+%+G4Z44Z4ZZ>6ZZZZZZZ+ZZZ+ZZZZZZGZZZGZZZ4ZZZZZZr   c                     d } t        |       }| }|sddt        j                         v st        j                  t               rt        j
                  t               ndt        j
                  |       t        j
                  |      dz  }t        t        j                  |            d x} x}}d} t        |       }| }|sddt        j                         v st        j                  t               rt        j
                  t               ndt        j
                  |       t        j
                  |      dz  }t        t        j                  |            d x} x}}y )Nz0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}r   r	   i90  )r   r   r   r   r   r   r   r   )r   r   @py_assert5@py_format6s       r   $test_compat_handles_none_and_non_strr7   5   s    ,01+D11111111111+111+111D1111111111,12+E22222222222+222+222E2222222222r   v2_only)r   r    r$   r%   c                    t        |       }|sddt        j                         v st        j                  t               rt        j
                  t               nddt        j                         v st        j                  |       rt        j
                  |       ndt        j
                  |      dz  }t        t        j                  |            d}y)u%   V2 strict 함수는 V2 패턴만 PASSz,assert %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
}r   r8   r'   Nr   r   r   r   r   r   r   r   )r8   r+   r,   s      r   test_v2_strict_accepts_v2r;   :   sm     G$$$$$$$$$$$$$$$$$G$$$G$$$$$$$$$$r   legacy_only)r!   r"   r#   c                    t        |       }| }|sddt        j                         v st        j                  t               rt        j
                  t               nddt        j                         v st        j                  |       rt        j
                  |       ndt        j
                  |      dz  }t        t        j                  |            dx}}y)u;   V2 strict 함수는 legacy dot-phase REJECT (회귀 박제)z0assert not %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
}r   r<   r'   Nr:   )r<   r+   r2   r   s       r   test_v2_strict_rejects_legacyr>   E   sv      ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   pytestutils.task_id_parserr   r   r   r   markparametrizer-   r3   r7   r;   r>    r   r   <module>rI      s    N    2  ! VV  % [[3
  % %%
  ) 
-
-r   