위키득계정 ↗
기술

Time-machine

Time-machine기술
분류
시간 모킹 라이브러리
사용 환경
Python
주요 인터페이스
travel
시간 조정
move_to와 shift
Time-machine은 Python 코드가 읽는 현재 시각을 시험용 시각으로 바꾸는 라이브러리다. 지정한 시각으로 이동하고 시간을 고정하거나 경과시키며 시간 의존 동작을 확인한다.

시간 이동의 적용

데코레이터와 동기 또는 비동기 컨텍스트로 시간 이동을 적용할 수 있다. 기본 설정에서는 이동한 시각을 기준으로 실제 경과 시간만큼 시간이 흐른다. 시각을 멈춰 두려면 고정하는 설정을 선택해야 한다.

기준 시각과 시간대

특정 시각으로 다시 이동하거나 현재 시험 시각에 상대적인 간격을 더할 수 있다. 시간대 정보가 없는 입력은 설정과 입력 형태에 따라 해석이 달라질 수 있다. 날짜 경계의 시험에서는 명시적인 시간대와 입력 해석 정책을 사용하는 것이 결과를 이해하기 쉽다.

영향의 경계

시간 변경은 같은 인터프리터의 동시 작업에도 영향을 줄 수 있다. 반면 다른 프로세스의 데이터베이스 서버 등이 반환하는 시간까지 바꾸지는 않는다. 애플리케이션에서 읽는 시각과 외부 서비스의 시각을 모두 같은 값으로 가정하면 시험과 실제 동작 사이에 차이가 생긴다.

관련 문서

Freezegun / Aioresponses / RESPX / Hurl