r잡초처럼
바른 프로그래밍
r잡초처럼
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • FastAPI (7)
    • 끄적끄적 (2)
    • Python (17)
    • Django (31)
    • Database (2)
    • Docker (7)
    • 디자인패턴 (2)
    • CS 공부 (12)
      • 알고리즘 (2)
      • 자료 구조 (1)
      • 네트워크 (7)
      • IT 지식 (1)
      • 운영체제 (1)
    • 기타 팁들 (10)
    • Aws (2)
    • 독서 (1)
    • 코딩테스트 공부 (1)
      • 백준 (0)
      • 프로그래머스 (1)
    • DevOps (13)
    • TIL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 책 리뷰
  • preonboarding
  • encoding
  • 케이블의 종류
  • 물리 계층
  • fastapi
  • query param
  • docker
  • poetry
  • 파이썬 클린 코드
  • 완벽한 IT 인프라 구축을 위한 Docker
  • CS 지식
  • 상속과 컴포지션
  • validate
  • cp949
  • pytest
  • dotenv
  • 5장 회사에서 하는 랜 구성
  • 6장
  • 상속 안티 패턴
  • depends
  • 네트워크
  • 랜 카드
  • 모두의 네트워크
  • 7장
  • 전기 신호
  • pycharm
  • 컴퓨터 기본 지식
  • 랜과 왠
  • Batch

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
r잡초처럼

바른 프로그래밍

Python

가상파일시스템 pyfakefs 를 통해 테스트 코드 작성하기

2023. 4. 24. 22:12

해당 디렉토리의 파일을 모아주는 util 함수를 생성하고 테스트 하고 싶었다. 하지만 실제로 폴더를 만들고 파일을 만드는 건 이치에 맞지 않다고 판단해서 이를 해주는 라이브러리가 없을까 찾아보다가 pyfakefs 를 찾았다.

 

공식문서는 요기

 

pyfakefs

pyfakefs implements a fake file system that mocks the Python file system modules.

pypi.org

사용 방법은 간단했다. 해당 라이브러리를 다운받고, pytest 의 fixture를 다루듯이 테스트 함수에서 매개변수로 다루면 되었다. 

 

아래는 pyfakefs 를 활용해 테스트 코드를 짜본 것이다.

def test_collect_file_path(fs) -> None:
    """
    해당 디렉토리의 파일들을 모으는 collect_file_path 를 테스트 하는 함수
    """
    from pathlib import Path

    tmp_path = "tmp/test"
    files = ["text1.xlsx", "test2.csv"]
    for file in files:
        fs.create_file(f"{tmp_path}/{file}")

    assert collect_file_path(tmp_path) == [Path(f"{tmp_path}/{file}") for file in files]

'Python' 카테고리의 다른 글

상속 안티 패턴  (0) 2023.09.05
Poweshell 환경에서 poetry 와 pyenv로 가상환경 세팅하기  (0) 2023.03.15
스택프레임, 빅오  (0) 2023.03.01
결합과 추상화 - 3  (0) 2023.02.21
결합과 추상화 - 2  (0) 2023.02.13
    'Python' 카테고리의 다른 글
    • 상속 안티 패턴
    • Poweshell 환경에서 poetry 와 pyenv로 가상환경 세팅하기
    • 스택프레임, 빅오
    • 결합과 추상화 - 3
    r잡초처럼
    r잡초처럼
    오늘보다 내일 더 나은 개발자가 되기 위한 노력을 기록하는 블로그 입니다.

    티스토리툴바