
    i                     F   d Z ddlZddlZddlZddlZddlZej                  j                  dd       ddlm	Z	 dde
deddfdZd	ej                  ddfd
Zd	ej                  ddfdZd	ej                  ddfdZd	ej                  ddfdZd	ej                  ddfdZddZy)u   
test_setup_auth.py - check_and_refresh_ttl 및 CLI --refresh 옵션 테스트

TDD: 테스트 먼저 작성 후 구현.
Firebase/Playwright 실제 호출 없음. mtime 조작과 파일 존재 여부만 테스트.
    Nz /home/jay/workspace/teams/shared)
setup_authpathage_secondsreturnc                     t        | dd      5 }|j                  d       ddd       t        j                         }||z
  }t        j                  | ||f       y# 1 sw Y   ;xY w)uG   파일을 생성하고 mtime을 현재 시각 - age_seconds 로 설정.wzutf-8)encodingz{}N)openwritetimeosutime)r   r   fnowpasts        V/home/jay/workspace/.worktrees/task-2116-dev1/teams/shared/qc/tests/test_setup_auth.py_touchr      sW    	dC'	* a	
))+CDHHTD$< 	 s   AA$tmp_pathc                 r    t        | dz        }t        |d       t        j                  |      }|du sJ y)u@   방금 생성된 storageState.json → 갱신 불필요 (False).storageState.jsonr   r   storage_state_pathFNstrr   r   check_and_refresh_ttlr   presults      r   test_check_ttl_fresh_filer    %   s8    H**+A
1!--CFU??    c                 r    t        | dz        }t        |d       t        j                  |      }|du sJ y)u)   55분 전 mtime → 갱신 필요 (True).r   i  r   r   TNr   r   s      r   test_check_ttl_stale_filer#   -   s8    H**+A
1'"--CFT>>r!   c                 X    t        | dz        }t        j                  |      }|du sJ y)u'   파일 없음 → 갱신 필요 (True).znonexistent_storageState.jsonr   TN)r   r   r   r   s      r   test_check_ttl_missing_filer%   5   s.    H667A--CFT>>r!   c                 t    t        | dz        }t        |d       t        j                  |d      }|du sJ y)uH   max_age_minutes=10 설정 시 15분 전 파일 → 갱신 필요 (True).r   i  r   
   r   max_age_minutesTNr   r   s      r   test_check_ttl_custom_max_ager*   <   s;    H**+A
1'"--TVWFT>>r!   c                 t    t        | dz        }t        |d       t        j                  |d      }|du sJ y)uH   max_age_minutes=10 설정 시 5분 전 파일 → 아직 유효 (False).r   i,  r   r'   r(   FNr   r   s      r   )test_check_ttl_custom_max_age_still_validr,   D   s;    H**+A
1&!--TVWFU??r!   c                      t        j                         } | j                  dd       | j                  dg      }|j                  du sJ | j                  g       }|j                  du sJ y)u)   CLI에서 --refresh 옵션 파싱 확인.z	--refresh
store_true)actionTFN)argparseArgumentParseradd_argument
parse_argsrefresh)parserargsargs_no_refreshs      r   test_refresh_option_clir8   L   sk    $$&F
L9k]+D<<4''+O""e+++r!   )g        )r   N)__doc__r0   r   sysr   pytestr   insertqc.authr   r   floatr   TempPathFactoryr    r#   r%   r*   r,   r8    r!   r   <module>rA      s     	 
   5 6 ! !5 !4 !(>(> 4 (>(> 4 &*@*@ T F,B,B t 8N8N SW ,r!   