
    i                     8    d Z ddlZddlmZ ddlZ G d d      Zy)u   task-1096.1: 완료 보고서 템플릿 수정 테스트

dev1~4-team.json의 보고서 템플릿이 올바르게 수정되었는지 검증합니다.
    NPathc                   b   e Zd ZdZej
                  deeef   fd       Z	deeef   ddfdZ
deeef   ddfdZdeeef   ddfdZdeeef   ddfd	Zdeeef   ddfd
Zdeeef   ddfdZdeeef   ddfdZdeeef   ddfdZdeeef   ddfdZdeeef   ddfdZdeeef   ddfdZy)TestReportTemplateFixu,   완료 보고서 템플릿 수정 테스트.returnc                 >    t        d      }|dz  |dz  |dz  |dz  dS )u   팀 설정 파일 경로.z&/home/jay/workspace/memory/org-detailszdev1-team.jsonzdev2-team.jsonzdev3-team.jsonzdev4-team.json)	dev1-team	dev2-team	dev3-team	dev4-teamr   )self	base_paths     =/home/jay/workspace/tests/test_task_1096_1_report_template.py
team_filesz TestReportTemplateFix.team_files   s=     AB	"%55"%55"%55"%55	
 	
    r   Nc                 l    |j                         D ]!  \  }}|j                         rJ | d|         y)u-   모든 팀 설정 파일이 존재해야 함.u    파일 없음: N)itemsexists)r   r   	team_namefilepaths       r   test_all_team_files_existz/TestReportTemplateFix.test_all_team_files_exist   sB    #-#3#3#5 	OIx??$N3CH:&NN$	Or   c                     t        |d   d      5 }|j                         }ddd       dvsJ d       y# 1 sw Y   xY w)u1   dev1-team.json에 이전 패턴이 없어야 함.r	   utf-8encodingN;   완료 보고서: {{task_id}} --report-path {{report_path}}u/   dev1-team.json에 이전 패턴이 남아있음openreadr   r   fcontents       r   test_no_old_pattern_in_dev1z1TestReportTemplateFix.test_no_old_pattern_in_dev1   O    *[)G< 	ffhG	 JQXX	=<	=X	 	   6?c                     t        |d   d      5 }|j                         }ddd       dvsJ d       y# 1 sw Y   xY w)u1   dev2-team.json에 이전 패턴이 없어야 함.r
   r   r   Nr   u/   dev2-team.json에 이전 패턴이 남아있음r   r    s       r   test_no_old_pattern_in_dev2z1TestReportTemplateFix.test_no_old_pattern_in_dev2'   r$   r%   c                     t        |d   d      5 }|j                         }ddd       dvsJ d       y# 1 sw Y   xY w)u1   dev3-team.json에 이전 패턴이 없어야 함.r   r   r   Nr   u/   dev3-team.json에 이전 패턴이 남아있음r   r    s       r   test_no_old_pattern_in_dev3z1TestReportTemplateFix.test_no_old_pattern_in_dev3/   r$   r%   c                     t        |d   d      5 }|j                         }ddd       dvsJ d       y# 1 sw Y   xY w)u1   dev4-team.json에 이전 패턴이 없어야 함.r   r   r   Nr   u/   dev4-team.json에 이전 패턴이 남아있음r   r    s       r   test_no_old_pattern_in_dev4z1TestReportTemplateFix.test_no_old_pattern_in_dev47   r$   r%   c                     t        |d   d      5 }|j                         }ddd       dv sJ d       y# 1 sw Y   xY w)u.   dev1-team.json에 새 패턴이 있어야 함.r	   r   r   N(   완료 보고서 작성: {{report_path}}u#   dev1-team.json에 새 패턴 없음r   r    s       r   test_new_pattern_in_dev1z.TestReportTemplateFix.test_new_pattern_in_dev1?   G    *[)G< 	ffhG	9WDkFkkD	 	r%   c                     t        |d   d      5 }|j                         }ddd       dv sJ d       y# 1 sw Y   xY w)u.   dev2-team.json에 새 패턴이 있어야 함.r
   r   r   Nr-   u#   dev2-team.json에 새 패턴 없음r   r    s       r   test_new_pattern_in_dev2z.TestReportTemplateFix.test_new_pattern_in_dev2E   r/   r%   c                     t        |d   d      5 }|j                         }ddd       dv sJ d       y# 1 sw Y   xY w)u.   dev3-team.json에 새 패턴이 있어야 함.r   r   r   Nr-   u#   dev3-team.json에 새 패턴 없음r   r    s       r   test_new_pattern_in_dev3z.TestReportTemplateFix.test_new_pattern_in_dev3K   r/   r%   c                     t        |d   d      5 }|j                         }ddd       dv sJ d       y# 1 sw Y   xY w)u.   dev4-team.json에 새 패턴이 있어야 함.r   r   r   Nr-   u#   dev4-team.json에 새 패턴 없음r   r    s       r   test_new_pattern_in_dev4z.TestReportTemplateFix.test_new_pattern_in_dev4Q   r/   r%   c                    |j                         D ]1  \  }}	 t        |d      5 }t        j                  |       ddd       3 y# 1 sw Y   xY w# t        j                  $ r$}t        j                  | d|        Y d}~sd}~ww xY w)u-   모든 파일이 유효한 JSON이어야 함.r   r   Nu    JSON 파싱 실패: )r   r   jsonloadJSONDecodeErrorpytestfail)r   r   r   r   r!   es         r   test_files_are_valid_jsonz/TestReportTemplateFix.test_files_are_valid_jsonW   s    #-#3#3#5 	DIxD(W5 !IIaL!	D! !'' Dyk)>qcBCCDs-   AAAA	AB	%BB	c                     |j                         D ]P  \  }}t        |d      5 }t        j                  |      }ddd       j	                  dd      }d|vrHJ | d        y# 1 sw Y   ,xY w)uG   {{task_id}} 플레이스홀더가 보고서 템플릿에 없어야 함.r   r   Nreport_template z{{task_id}}u?   의 report_template에 {{task_id}} 플레이스홀더가 있음)r   r   r7   r8   get)r   r   r   r   r!   datar?   s          r   test_no_task_id_placeholderz1TestReportTemplateFix.test_no_task_id_placeholder`   s    #-#3#3#5 	aIxh1 $Qyy|$ #hh'8"=O_4a_`a4	a$ $s   A%%A.	)__name__
__module____qualname____doc__r:   fixturedictstrr   r   r   r#   r'   r)   r+   r.   r1   r3   r5   r=   rC    r   r   r   r      sh   6^^
DdO 
 
ODdO O O
=d39o =$ ==d39o =$ ==d39o =$ ==d39o =$ =l4T	? lt ll4T	? lt ll4T	? lt ll4T	? lt lDDdO D D
ad39o 
a$ 
ar   r   )rG   r7   pathlibr   r:   r   rK   r   r   <module>rM      s#   
   ^a ^ar   