J'ai un objet global dans mon fichier principalComment monkeypatch l'environnement en utilisant pytest dans conftest.py?
# reporter.py
from os import environ
from influxdb import InfluxDBClient
influxdb_client = InfluxDBClient(host=environ['INFLUXCLOUD_HOST'],
username=environ['INFLUXCLOUD_USERNAME'],
password=environ['INFLUXCLOUD_PASSWORD'],
ssl=True,
timeout=4*60)
def foo():
pass
J'utilise pytest et je veux définir des valeurs fausses à ces variables d'environnement. J'ai ce qui suit dans mon conftest.py:
# conftest.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def setup_env(monkeypatch):
monkeypatch.setenv('INFLUXCLOUD_HOST', 'host')
monkeypatch.setenv('INFLUXCLOUD_USERNAME', 'username')
monkeypatch.setenv('INFLUXCLOUD_PASSWORD', 'password')
Cependant, quand je import reporter
dans mon dossier de test, je reçois un KeyError
que INFLUXCLOUD_HOST manque dans env.
Pourquoi pytest n'exécute-t-il pas le setup_env
et monkeypatch mon environnement? Y a-t-il un moyen de le faire?
Pouvez-vous s'il vous plaît montrer votre fichier de test et comment votre reporter d'importation? –