
    i$              	          d 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
  e
ej                  j                  dd            Z ee      ej                  vr"ej                  j!                  d ee             ddlmZmZ dde
ded	ed
efdZde
fdZde
fdZde
fdZde
fdZde
fdZde
fdZde
fdZde
fdZde
fdZde
fdZy)u  
test_report_parser.py

report_parser.py 머지 감지 기능 TDD 테스트 (토르 작성)

테스트 항목:
- parse_report(): merge_needed, merge_branch, merge_worktree 필드 추출
- summarize_oneline(): merge_needed=True 시 "| 🔀 머지 필요" 접미사
    N)PathWORKSPACE_ROOTz/home/jay/workspace)parse_reportsummarize_onelinetmp_pathcontentfilenamereturnc                 H    | |z  }|j                  |d       t        |      S )uI   임시 보고서 파일을 생성하고 경로 문자열을 반환한다.zutf-8)encoding)
write_textstr)r   r   r	   ps       //home/jay/workspace/tests/test_report_parser.py_make_reportr      s%    8ALL7L+q6M    c                 4   d}t        | |      }t        |      }|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}}y	)
uO   보고서에 'merge 판단은 아누에게 위임' 포함 시 merge_needed=Trueu,  # task-100.1 작업 보고서

- **작업 ID**: task-100.1
- **팀**: dev2
- **작업 요약**: 기능 구현 완료
- **소요 시간**: 30분

## 머지 판단
merge 판단은 아누에게 위임합니다.

## 결과
- **총 테스트**: 5
- **통과**: 5
- **실패**: 0
- **발견 버그**: 0건
merge_neededTisz%(py1)s is %(py4)spy1py4assert %(py6)spy6Nr   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation	r   r   filepathresult@py_assert0@py_assert3@py_assert2@py_format5@py_format7s	            r   !test_merge_needed_delegate_to_anur+   '   s    G" Hg.H(#F.!)T)!T))))!T)))!)))T)))))))r   c                 4   d}t        | |      }t        |      }|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}}y	)
uD   '머지 필요 없음' 포함 시 merge_needed=False (부정 표현)u:  # task-100.2 작업 보고서

- **작업 ID**: task-100.2
- **팀**: dev1
- **작업 요약**: 버그 수정 완료
- **소요 시간**: 15분

## 머지 판단
머지 필요 없음. 단독 브랜치에서 작업 완료.

## 결과
- **총 테스트**: 3
- **통과**: 3
- **실패**: 0
- **발견 버그**: 0건
r   Fr   r   r   r   r   Nr   r#   s	            r   test_merge_not_neededr.   E   s    G" Hg.H(#F.!*U*!U****!U***!***U*******r   c                 4   d}t        | |      }t        |      }|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}}y	)
uA   머지/merge 관련 키워드 전혀 없으면 merge_needed=Falseu)  # task-100.3 작업 보고서

- **작업 ID**: task-100.3
- **팀**: dev3
- **작업 요약**: 리팩토링 완료
- **소요 시간**: 1시간

## 작업 내용
코드 구조를 개선하였습니다.

## 결과
- **총 테스트**: 10
- **통과**: 10
- **실패**: 0
- **발견 버그**: 0건
r   Fr   r   r   r   r   Nr   r#   s	            r   test_no_merge_keywordsr1   c   r/   r   c                 6   d}t        | |      }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	)
uD   'task/task-100.1-dev2' 패턴 브랜치명을 merge_branch에 추출ur  # task-100.1 작업 보고서

- **작업 ID**: task-100.1
- **팀**: dev2
- **작업 요약**: 신규 기능 추가
- **소요 시간**: 45분

## 브랜치 정보
작업 브랜치: `task/task-100.1-dev2`

머지 필요합니다. 메인 브랜치로 머지 요청드립니다.

## 결과
- **총 테스트**: 8
- **통과**: 8
- **실패**: 0
- **발견 버그**: 0건
merge_branchztask/task-100.1-dev2==z%(py1)s == %(py4)sr   r   r   Nr   r#   s	            r   test_branch_extractionr7      sw    G& Hg.H(#F.!;%;;!%;;;;;!%;;;;!;;;%;;;;;;;;r   c                    d}t        | |      }t        |      }t        |      }|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}}|j                  }
d
} |
|      }|sddt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |
      t        j
                  |      t        j
                  |      dz  }	t        t        j                  |	            d	x}
x}}y	)uC   merge_needed=True이면 요약 끝에 '| 🔀 머지 필요' 추가u  # task-100.4 작업 보고서

- **작업 ID**: task-100.4
- **팀**: dev2
- **작업 요약**: API 구현
- **소요 시간**: 2시간

merge 판단은 아누에게 위임합니다.

## 결과
- **총 테스트**: 12
- **통과**: 12
- **실패**: 0
- **발견 버그**: 0건
r   Tr   r   r   r   r   Nu   | 🔀 머지 필요zJassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.endswith
}(%(py4)s)
}oneline)py0py2r   r   )r   r   r   r   r   r    r!   r"   endswith@py_builtinslocals_should_repr_global_name)r   r   r$   r%   r9   r&   r'   r(   r)   r*   @py_assert1@py_assert5s               r   &test_summarize_oneline_merge_indicatorrB      s    G  Hg.H(#F'G.!)T)!T))))!T)))!)))T)))))))3232333333337333733333323333333333r   c                 6   d}t        | |      }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/   /home/jay/projects/.worktrees/... 경로 추출u\  # task-100.5 작업 보고서

- **작업 ID**: task-100.5
- **팀**: dev1
- **작업 요약**: 워크트리 작업
- **소요 시간**: 20분

## 워크트리 정보
작업 경로: `/home/jay/projects/myapp/.worktrees/task-100.5`

머지 필요합니다.

## 결과
- **총 테스트**: 4
- **통과**: 4
- **실패**: 0
- **발견 버그**: 0건
merge_worktreez./home/jay/projects/myapp/.worktrees/task-100.5r4   r6   r   r   r   Nr   r#   s	            r   test_worktree_path_extractionrE      sx    G& Hg.H(#F"#W'WW#'WWWWW#'WWWW#WWW'WWWWWWWWr   c                 4   d}t        | |      }t        |      }|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}}y	)
u,   '아누 판단' 포함 시 merge_needed=Trueuc  # task-100.6 작업 보고서

- **작업 ID**: task-100.6
- **팀**: dev3
- **작업 요약**: 데이터 처리 로직 구현
- **소요 시간**: 1시간 30분

## 머지 판단
아누 판단에 맡깁니다. 브랜치 상태를 확인 후 결정 바랍니다.

## 결과
- **총 테스트**: 7
- **통과**: 7
- **실패**: 0
- **발견 버그**: 0건
r   Tr   r   r   r   r   Nr   r#   s	            r   test_anu_judgment_keywordrG      r,   r   c                 4   d}t        | |      }t        |      }|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}}y	)
u5   '머지 필요합니다' 포함 시 merge_needed=TrueuT  # task-100.7 작업 보고서

- **작업 ID**: task-100.7
- **팀**: dev2
- **작업 요약**: 인증 모듈 구현
- **소요 시간**: 3시간

## 배포 노트
작업 완료 후 머지 필요합니다. 충돌 없음을 확인하였습니다.

## 결과
- **총 테스트**: 15
- **통과**: 15
- **실패**: 0
- **발견 버그**: 0건
r   Tr   r   r   r   r   Nr   r#   s	            r   test_merge_needed_positiverI      r,   r   c                    d}t        | |      }t        |      }t        |      }|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
}||v}|st        j                  d|fd||f      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	)uC   merge_needed=False이면 요약에 '머지 필요' 문자열 없음u   # task-100.8 작업 보고서

- **작업 ID**: task-100.8
- **팀**: dev1
- **작업 요약**: 문서 업데이트
- **소요 시간**: 10분

## 결과
- **총 테스트**: 2
- **통과**: 2
- **실패**: 0
- **발견 버그**: 0건
r   Fr   r   r   r   r   Nu   머지 필요)not in)z%(py1)s not in %(py3)sr9   )r   py3zassert %(py5)spy5)r   r   r   r   r   r    r!   r"   r=   r>   r?   )r   r   r$   r%   r9   r&   r'   r(   r)   r*   @py_format4@py_format6s               r   )test_summarize_oneline_no_merge_indicatorrP     s    G Hg.H(#F'G.!*U*!U****!U***!***U*******)?'))))?')))?))))))')))')))))))r   c                 4   d}t        | |      }t        |      }|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}}y	)
u/   'merge 불필요' 포함 시 merge_needed=Falseu@  # task-100.9 작업 보고서

- **작업 ID**: task-100.9
- **팀**: dev3
- **작업 요약**: 설정 파일 수정
- **소요 시간**: 5분

## 머지 판단
이번 작업은 merge 불필요합니다. 독립 작업입니다.

## 결과
- **총 테스트**: 1
- **통과**: 1
- **실패**: 0
- **발견 버그**: 0건
r   Fr   r   r   r   r   Nr   r#   s	            r   test_merge_unnecessary_keywordrR   9  r/   r   )ztask-100.1.md)__doc__builtinsr=   _pytest.assertion.rewrite	assertionrewriter   ossyspathlibr   environget	WORKSPACEr   pathinsertreport_parserr   r   r   r+   r.   r1   r7   rB   rE   rG   rI   rP   rR    r   r   <module>rb      s     	 
   02GHI	y>!HHOOAs9~& 94 #  SV * *<+D +<+T +<<T <@4T 4>XD X@* *<* *<* *:+T +r   