Я занимаюсь разработкой проекта со следующей архитектурой:
|-- weather
| |-- __init__.py
| |-- weather.py
|-- library
| |-- data.json
|-- test
| |-- __init__.py
| |-- test_weather.py
Я хотел бы проверить, что при выполнении сохранения создается каталог library
, если он еще не существует.test_weather.py
содержит:
import os
import shutil
from weather import weather
def test_library_creation():
# Initialize.
app = weather.WeatherApp()
temp_data = app.get_data()
# Library should not exist initially.
assert not os.path.isdir('library')
app.save(temp_data)
# Library should exist after save.
assert os.path.isdir('library')
assert os.path.isfile(os.path.join('library', 'data.json'))
# Cleanup.
shutil.rmtree('library')
Однако в data.json
могут быть сохранены некоторые данные, которые я не хочу удалять в результате выполнения этого теста.
Имеет pytest
есть решение для этого случая?
РЕДАКТИРОВАТЬ:
weather.py
содержит:
import os
import json
DEFAULT_SAVE_PATH = os.path.join('library', 'data.json')
class WeatherApp:
def get_data(self):
return dict(temperature=25, humidity=0.5)
def save(self, data, save_path=DEFAULT_SAVE_PATH):
with open('data.json', 'w') as jf:
json.dump(data, jf)
os.renames('data.json', save_path)