위키득계정 ↗
기술

Pyfakefs

Pyfakefs기술
분류
파일 시스템 모킹 라이브러리
사용 환경
Python
기본 저장
메모리 파일 시스템
시험 연동
pytest와 unittest 등
Pyfakefs는 Python의 파일 시스템 관련 호출을 메모리 안의 시험용 파일 시스템으로 대체하는 라이브러리다. 실제 디스크에 시험 파일을 만들지 않고 파일 처리 코드를 확인하는 데 활용한다.

파일 시스템의 대체

시험마다 별도의 가상 파일 시스템을 만들고 파일 관련 Python 호출이 이를 사용하도록 바꾼다. pytest에서는 fs 픽스처로 적용할 수 있으며 컨텍스트와 데코레이터 방식도 제공한다. 파일을 직접 준비하고 지우는 시험의 부담을 줄이는 데 쓰인다.

설정과 실제 파일

실제 파일이나 디렉터리를 가상 환경에 연결하고 패칭을 잠시 멈추는 기능이 있다. 파일 시스템 크기나 일부 운영체제 동작도 구성할 수 있다. 어떤 호출이 실제 파일에 접근하는지와 가상 환경을 사용하는지를 구분해야 한다.

대체되지 않는 접근

C 라이브러리가 직접 수행하는 파일 접근은 Python 함수의 대체만으로 제어할 수 없다. 이 경우 실제 파일 시스템에 접근할 수 있다. 따라서 가상 파일 시스템에서 성공한 시험을 모든 운영체제와 모든 파일 처리 라이브러리에 대한 완전한 검증으로 해석해서는 안 된다.

관련 문서

Pytest-mock / Pytest-env / Pytest-socket / Factory Boy