Вы захотите посмотреть mock_open из модуля mock. Он позволяет вам исправить встроенный метод open, чтобы имитировать чтение / запись.
Если есть эта функция (заметьте, я немного изменил вашу функцию):
def read_json(file_json_path):
try:
with open(file_json_path) as fd:
content = json.load(fd)
return content
except IOError:
print('exception while opening a file %s\n' % (file_json_path))
Вы можете легко протестировать функцию, например, так:
def test_read_json():
from unittest.mock import mock_open, patch
m = mock_open(read_data = '{"key": "value"}')
with patch('__main__.open', m):
result = read_json('fake_file')
assert result == {'key': 'value'}
m.assert_called_once_with('fake_file')