Notez que je suis tombé sur une scène où je voulais tester une méthode qui renvoie l'heure actuelle en Python Le freezegun qui peut fixer la date est pratique!
Pour pytest, il existe «pytest-freezegun» comme plug-in pour pytest.
@ Pytest.mark.freeze_time
est ajouté comme marqueur pour pytest.
test_sample.py
from datetime import datetime
import pytest
@pytest.mark.freeze_time('2019-11-27 11:23:23')
def test_time():
assert datetime.today() == datetime(2019, 11, 27, 11, 23, 23)
Vous pouvez importer
get_today.py
def dateget():
return datetime.datetime.today()
test_sample.py
from datetime import datetime
import pytest
import get_today
@pytest.mark.freeze_time('2019-11-27 11:23:23')
def test_time():
assert get_today.dateget() == datetime(2019, 11, 27, 11, 23, 23)
$ python -m pytest test_sample.py
plugins: freezegun-0.3.0.post1
collected 1 item
test_sample.py .
==== 1 passed in 0.07 seconds ====
Si vous jouez avec 〇 minutes avant (minutes = update_span) à partir de l'heure actuelle, 〇 heures ou 〇 jours est également possible
test_sample.py
@pytest.mark.freeze_time('2019-11-27 11:23:23')
def test_time():
correct_value = datetime(2019, 11, 27, 11, 20, 23)
subtracted_time = datetime.now() - timedelta(minutes=3)
assert subtracted_time == datetime(2019, 11, 27, 11, 20, 23)
Recommended Posts