
    ~i                    :   d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	  ee
      j                         j                  d   Zedz  ZeefD ]9  Z ee      ej"                  vsej"                  j%                  d ee             ; ddlmZ ddd	Z G d
 d      Zy)u   task-2478: pr-open 경로 blast_radius list 입력 회귀 테스트 — 모리건.

worktree_manager._get_blast_radius_summary가 ast_dependency_map의 list 출력을
받았을 때 'list' object has no attribute 'get' 오류로 죽지 않는지 검증.
    )annotationsN)Path)	MagicMockpatch   scripts)_get_blast_radius_summaryc                D    t               }| |_        ||_        ||_        |S )N)r   
returncodestdoutstderr)r   r   r   ms       b/home/jay/workspace/.worktrees/task-2487+1-dev2/tests/scripts/test_taskctl_pr_open_blast_radius.py
_make_procr      s#    AALAHAHH    c                  (    e Zd ZdZd Zd Zd Zd Zy)TestPrOpenBlastRadiusListInputu<   ast_dependency_map list 출력 → AttributeError 무발생.c                J   t        dd      }ddgdgg g ddd	d
dgdgg g ddd	g}t        dt        j                  |            }t        d||g      5  t	        ddd      }d d d        j                  d      sJ d|v sJ d|v sJ d|v sJ d|v sJ y # 1 sw Y   5xY w)Nr   zsrc/foo.py
src/bar.py
r   r   
src/foo.py
src/baz.pytests/test_foo.pyr   direct_importers
test_filescallerstransitive_dependentstotal_affectedchanged_fileblast_radiusz
src/bar.pyz
src/qux.pyztests/test_bar.pysubprocess.runside_effect
/fake/pathfeaturemain## Blast Radiusr   jsondumpsr   r	   
startswith)selfgit_okast_listast_okresults        r   .test_list_input_does_not_raise_attribute_errorzMTestPrOpenBlastRadiusListInput.test_list_input_does_not_raise_attribute_error"   s    q1KL)%1N23a< 
 *%1N23a< 
 qH1EF#&&1AB 	P.|YOF	P   !2333v%%%v%%%"f,,,"f,,,	P 	Ps   BB"c                   t        dd      }ddgdgg g ddd	}t        dt        j                  |            }t        d
||g      5  t	        ddd      }ddd       j                  d      sJ d|v sJ y# 1 sw Y   #xY w)uG   단일 파일 ast 출력(dict + blast_radius 중첩) — 정상 처리.r   src/foo.py
r   r   r   r      r   r   r"   r#   r%   r&   r'   Nr(   r)   )r-   r.   ast_dictr0   r1   s        r   )test_single_dict_with_blast_radius_nestedzHTestPrOpenBlastRadiusListInput.test_single_dict_with_blast_radius_nested:   s    q@$0!-?R>SB!C
  qH1EF#&&1AB 	P.|YOF	P  !2333v%%%	P 	Ps   
A::Bc                    t        dd      }dgdgd}t        dt        j                  |            }t        d||g      5  t	        d	d
d      }ddd       j                  d      sJ d|v sJ y# 1 sw Y   #xY w)uI   legacy 평탄 dict(기존 test_ast_integration mock) — backward compat.r   r4   r   r   r   )r   r   r"   r#   r%   r&   r'   Nr(   r)   )r-   r.   
ast_legacyr0   r1   s        r   %test_legacy_flat_dict_backward_compatzDTestPrOpenBlastRadiusListInput.test_legacy_flat_dict_backward_compatG   s    q@+7.I\H]^
qJ1GH#&&1AB 	P.|YOF	P  !2333v%%%	P 	Ps   A44A=c                    t        dd      }t        dt        j                  g             }t        d||g      5  t	        ddd      }d	d	d	       j                  d
      sJ d|v sJ y	# 1 sw Y   #xY w)u8   빈 list → 빈 importers/tests로 마크다운 반환.r   r4   r   r"   r#   r%   r&   r'   Nr(   u   없음r)   )r-   r.   r0   r1   s       r   %test_empty_list_returns_empty_summaryzDTestPrOpenBlastRadiusListInput.test_empty_list_returns_empty_summaryQ   s|    q@qB@#&&1AB 	P.|YOF	P  !23336!!!	P 	Ps   A--A6N)__name__
__module____qualname____doc__r2   r7   r:   r<    r   r   r   r      s    F-0&&"r   r   )r    rB   )r   intr   strr   rD   returnr   )r@   
__future__r   r*   syspathlibr   unittest.mockr   r   __file__resolveparents_WS_ROOT_SCRIPTSprD   pathinsertworktree_managerr	   r   r   rA   r   r   <module>rS      s    #  
  *>!!#++A.i
H	 #A
1vSXX3q6"# 79" 9"r   