양파개발자 실바의 블로그

Django + Pytest 활용 Tip

Global mocking 하기

  • 모든 test 에 대하여 특정 함수를 mocking 하는 방법
  • 프로젝트 홈폴더에 conftest.py 라는 파일을 만들어 아래 내용을 추가한다.
import mock
import pytest

GLOBAL_MOCKING_REFERENCES = [
    "app.util.my_func",
]


@pytest.fixture(scope="session", autouse=True)
def default_session_fixture(request):
    """
    Fixture would affect throughout all tests
    """
    for mocking_ref in GLOBAL_MOCKING_REFERENCES:
        patched = mock.patch(mocking_ref)
        patched.__enter__()

        def unpatch():
            patched.__exit__()

        request.addfinalizer(unpatch)