Files
fastapi-cache/tests/test_decorator.py

48 lines
1.6 KiB
Python
Raw Normal View History

import time
import pendulum
2022-10-14 21:59:33 +02:00
from fastapi_cache import FastAPICache
from starlette.testclient import TestClient
from examples.in_memory.main import app
def test_datetime():
with TestClient(app) as client:
response = client.get("/datetime")
now = response.json().get("now")
now_ = pendulum.now().replace(microsecond=0)
assert pendulum.parse(now).replace(microsecond=0) == now_
response = client.get("/datetime")
now = response.json().get("now")
assert pendulum.parse(now).replace(microsecond=0) == now_
time.sleep(3)
response = client.get("/datetime")
now = response.json().get("now")
now = pendulum.parse(now).replace(microsecond=0)
assert now != now_
assert now == pendulum.now().replace(microsecond=0)
2022-10-14 21:59:33 +02:00
def test_date():
"""Test path function without request or response arguments."""
with TestClient(app) as client:
response = client.get("/date")
assert pendulum.parse(response.json()) == pendulum.today()
# do it again to test cache
response = client.get("/date")
assert pendulum.parse(response.json()) == pendulum.today()
# now test with cache disabled, as that's a separate code path
FastAPICache._enable = False
response = client.get("/date")
assert pendulum.parse(response.json()) == pendulum.today()
FastAPICache._enable = True
def test_sync():
"""Ensure that sync function support works."""
with TestClient(app) as client:
response = client.get("/sync-me")
assert response.json() == 42