
    5i                         d Z ddlZddlmc mZ ddlZej                  j                  dd       ddl
mZ  G d d      Zy)u}   
test_planned_check.py — planned_check verifier 테스트
작성자: 모리건 (개발3팀 테스터)
태스크: task-1917
    Nz /home/jay/workspace/teams/shared)planned_checkc                   :    e Zd ZdedefdZd Zd Zd Zd Zd Z	y	)
TestPlannedCheckVerifiertask_idcontentc                 z    |dz  }|j                  dd       || dz  j                  |d       t        |      S )NreportsT)parentsexist_okz.mdzutf-8)encoding)mkdir
write_textstr)selftmp_pathr   r   reports_dirs        //home/jay/workspace/tests/test_planned_check.py_make_reportz%TestPlannedCheckVerifier._make_report   sH    *$6	'#	&227W2M;    c                 4   d}| j                  |d|      }t        j                  d|      }|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   }
t        |
      }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t              rt        j
                  t              ndt        j
                  |
      t        j
                  |      t        j
                  |      dz  }dd|iz  }t        t        j                  |            dx}
x}x}}d}|d   d   }||v }|slt        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }d	d
|iz  }	t        t        j                  |	            dx}x}}y)u(   planned 항목 포함 보고서 → FAILu   # 보고서

## 수정 파일별 검증 상태

| 파일 | 변경 내용 | grep 검증 | 상태 |
|------|-----------|-----------|------|
| a.py | 변경A | grep "X" OK | verified |
| b.py | 변경B | 없음 | planned |
z
task-test1r   statusFAIL==z%(py1)s == %(py4)spy1py4assert %(py6)spy6Nplanned_count   planned_itemsz0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)slenpy0py2r   py7assert %(py9)spy9zb.pyr   )in)z%(py1)s in %(py4)sr   r   verify
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationr&   @py_builtinslocals_should_repr_global_namer   r   r   rdresult@py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert1@py_assert6@py_assert5@py_format8@py_format10s                  r   test_fail_with_planned_itemsz5TestPlannedCheckVerifier.test_fail_with_planned_items   s   	 xw?%%lCh)6)6))))6))))))6)))))))o&+!+&!++++&!+++&+++!+++++++/*0s*+0q0+q0000+q000000s000s000*000+000q00000003033v33333v3333v33333333333r   c                 \   d}| j                  |d|      }t        j                  d|      }|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)u   모든 항목 verified → PASSu   # 보고서

## 수정 파일별 검증 상태

| 파일 | 변경 내용 | grep 검증 | 상태 |
|------|-----------|-----------|------|
| a.py | 변경A | grep "X" OK | verified |
| b.py | 변경B | grep "Y" OK | verified |
z
task-test2r   r   PASSr   r   r   r    r!   Nr"   r   r   r   r/   r0   r1   r2   r3   r4   
r   r   r   r9   r:   r;   r<   r=   r>   r?   s
             r   test_pass_with_all_verifiedz4TestPlannedCheckVerifier.test_pass_with_all_verified'   s    	 xw?%%lCh)6)6))))6))))))6)))))))o&+!+&!++++&!+++&+++!+++++++r   c                 \   d}| j                  |d|      }t        j                  d|      }|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)u#   테이블 없는 보고서 → SKIPu   # 보고서

간단한 내용.
z
task-test3r   r   SKIPr   r   r   r    r!   NrH   rI   s
             r   test_skip_no_tablez+TestPlannedCheckVerifier.test_skip_no_table8   s    6xw?%%lCh)6)6))))6))))))6)))))))r   c                 D   t        j                  dt        |            }|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
)u   보고서 없음 → SKIPztask-nonexistentr   r   rL   r   r   r   r    r!   N)r   r/   r   r0   r1   r2   r3   r4   )r   r   r:   r;   r<   r=   r>   r?   s           r   test_skip_no_reportz,TestPlannedCheckVerifier.test_skip_no_report?   sk    %%&8c(mTh)6)6))))6))))))6)))))))r   c                 0   d}| j                  |d|      }t        j                  d|      }|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   }
t        |
      }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t              rt        j
                  t              ndt        j
                  |
      t        j
                  |      t        j
                  |      dz  }dd|iz  }t        t        j                  |            dx}
x}x}}y)u8   planned 항목 여러 건 → FAIL + 정확한 카운트u  # 보고서

## 수정 파일별 검증 상태

| 파일 | 변경 내용 | grep 검증 | 상태 |
|------|-----------|-----------|------|
| a.py | 변경A | 없음 | planned |
| b.py | 변경B | 없음 | planned |
| c.py | 변경C | grep "Z" OK | verified |
z
task-test4r   r   r   r   r   r   r    r!   Nr"      r$   r%   r&   r'   r+   r,   r.   r8   s                  r   test_fail_multiple_plannedz3TestPlannedCheckVerifier.test_fail_multiple_plannedD   s]   
 xw?%%lCh)6)6))))6))))))6)))))))o&+!+&!++++&!+++&+++!+++++++/*0s*+0q0+q0000+q000000s000s000*000+000q0000000r   N)
__name__
__module____qualname__r   r   rE   rJ   rM   rO   rR    r   r   r   r      s.     c  C  4&,"**
1r   r   )__doc__builtinsr5   _pytest.assertion.rewrite	assertionrewriter0   syspathinsert	verifiersr   r   rV   r   r   <module>r`      s5     
 5 6 #H1 H1r   