
    Siv                        d Z ddlZddlZddlmZ ddlZddlZ eej                  j                  dd            Z
 ee
      ej                  vr"ej                  j                  d ee
             ej                  j                  dd      Z ej                  d	      d
        Z ej                  d	      d        Z ej                  d	      d        Zy)u  tests/ 공통 fixture.

task-448.1: team_prompts.py 모듈레벨 크래시 제거 후,
ANU_KEY가 없는 테스트 환경에서도 build_prompt()가 정상 동작하도록
모듈 변수를 테스트용 값으로 패치한다.

task-448.2: CI/CD 등 .env.keys 파일이 없는 환경에서 발생하는
환경변수 의존성을 제거하기 위해 모든 관련 환경변수를 더미 값으로 세팅한다.
    N)PathWORKSPACE_ROOTz/home/jay/workspaceCOKACDIR_CHAT_ID
6937032012T)autousec                    | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  d	d
       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       	 ddlm} | j                  |dd       y# t        $ r Y yw xY w)u  모든 테스트에서 환경변수 의존성을 제거하기 위해 더미 값을 세팅한다.

    1. 환경변수(os.environ)에 더미 키/토큰 값을 주입하여
       .env.keys 파일이 없는 CI/CD 환경에서도 테스트가 통과하도록 한다.
    2. 이미 임포트된 team_prompts 모듈의 ANU_KEY 변수도 직접 패치하여
       모듈 로드 시점의 캐싱 문제를 함께 해결한다.
    COKACDIR_KEY_ANUztest-key-anuCOKACDIR_KEY_DEV1ztest-key-dev1COKACDIR_KEY_DEV2ztest-key-dev2COKACDIR_KEY_DEV3ztest-key-dev3COKACDIR_KEY_DEV4ztest-key-dev4COKACDIR_KEY_DEV5ztest-key-dev5COKACDIR_KEY_DEV6ztest-key-dev6COKACDIR_KEY_DEV7ztest-key-dev7COKACDIR_KEY_DEV8ztest-key-dev8ANU_BOT_TOKENztest-bot-tokenr   
0000000000r   NANU_KEYztest-anu-key)setenvprompts.team_promptsteam_promptssetattrImportError)monkeypatchtps     ?/home/jay/workspace/.worktrees/task-2117-dev1/tests/conftest.py_set_test_env_keysr      s     )>:*O<*O<*O<*O<*O<*O<*O<*O<(89)<8)B	>: s   C" "	C.-C.c               #      K   t         j                  j                  d      } d | | t         j                  d<   ydt         j                  v rt         j                  d= yyw)uu  각 테스트 후 sys.modules["dispatch"]를 복원하여 모듈 재로딩에 의한 테스트 간 오염을 방지한다.

    일부 테스트가 dispatch 모듈을 sys.modules에서 제거하고 재임포트할 때,
    새 모듈 객체가 sys.modules에 남아 다른 테스트의 함수 __globals__ 참조와
    불일치가 발생하는 문제를 방지한다.
    dispatchN)sysmodulesget)original_dispatchs    r   _restore_dispatch_moduler$   8   sO      
3	$"3J	s{{	"KK
# 
#s   AA!c               #     K   ddl } g d}i }|D ]+  }|t        j                  v st        j                  |   ||<   - d |D ]  }t        j                  j                  |      }t	        || j
                  j                        sC||v r:t	        ||   | j
                  j                        s||   t        j                  |<   |t        j                  v st        j                  |=  yw)u?  각 테스트 후 verifiers 서브모듈을 복원하여 MagicMock 오염을 방지한다.

    test_qc_gate.py가 모듈 레벨에서 verifiers.test_runner 등을 MagicMock으로
    교체하는데, 이를 복원하지 않으면 이후 테스트에서 실제 verifier 대신
    MagicMock을 호출하게 된다.
    r   N)
	verifierszverifiers.api_healthzverifiers.data_integrityzverifiers.file_checkzverifiers.pyright_checkzverifiers.schema_contractzverifiers.scope_checkzverifiers.style_checkzverifiers.tdd_checkzverifiers.test_runner)unittest.mockr    r!   r"   
isinstancemock	MagicMock)unittest_verifier_names	originalsnamecurrents        r   _restore_verifier_modulesr0   I   s      O I 03;;!kk$/IdO0 
 &++//$'gx}}667y IdOX]]E\E\)]$-dOD!$KK%&s   "C+A C+AC+C+)__doc__osr    pathlibr   pytestrequests_requests_preloadenvironr"   
_WORKSPACEstrpathinsertTEST_CHAT_IDfixturer   r$   r0        r   <module>r@      s    
 
   $"**..!13HIJ
z?#(("HHOOAs:'zz~~0,?  < $ $  & &r?   