2022-09-10 20:06:37 +08:00
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
import pendulum
|
2022-10-14 21:59:33 +02:00
|
|
|
from fastapi_cache import FastAPICache
|
2022-09-10 20:06:37 +08:00
|
|
|
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
|