pytest-mockのpatchについて

mocker.patch の使い方メモ

ディレクトリ構成

├─src
│  └─pkg
│      ├─ __init__.py
│      └─ foo.py
└─test
    └─pkg
        └─ test_foo.py

__init__.py は空

foo.py

def fetch_data():
    raise NotImplementedError()

test_foo.py

from pathlib import Path
import sys
sys.path.append(str(Path(__file__).parents[2] / 'src' / 'pkg'))
import foo  # noqa


def test_fetch_data(mocker):
    mocker.patch('foo.fetch_data', return_value=None)
    df = foo.fetch_data()
    assert df is None

これで pytest すると、NotImplementedError は出ずに、テストは通る

コメント

タイトルとURLをコピーしました