stacosys/tests/test_api.py

64 lines
1.6 KiB
Python
Raw Normal View History

2023-11-26 17:51:51 +01:00
#!/usr/bin/env python
2021-08-28 15:58:10 +02:00
# -*- coding: UTF-8 -*-
2021-09-05 17:14:08 +02:00
import json
2021-08-28 15:58:10 +02:00
import logging
import pytest
2022-12-02 08:59:55 +01:00
from stacosys.db import dao, database
from stacosys.interface import api, app
2021-08-28 15:58:10 +02:00
2021-09-05 17:14:08 +02:00
def init_test_db():
c1 = dao.create_comment("/site1", "Bob", "/bob.site", "", "comment 1")
c2 = dao.create_comment("/site2", "Bill", "/bill.site", "", "comment 2")
c3 = dao.create_comment("/site3", "Jack", "/jack.site", "", "comment 3")
dao.publish_comment(c1)
dao.publish_comment(c3)
2022-04-27 03:04:55 +02:00
assert c2
2021-09-05 17:14:08 +02:00
2021-08-28 15:58:10 +02:00
@pytest.fixture
def client():
logger = logging.getLogger(__name__)
2022-12-01 20:35:48 +01:00
database.configure("sqlite:memory://db.sqlite")
2021-09-05 17:14:08 +02:00
init_test_db()
2021-08-28 15:58:10 +02:00
logger.info(f"start interface {api}")
return app.test_client()
def test_api_ping(client):
2022-04-26 20:51:42 +02:00
resp = client.get("/api/ping")
2021-09-05 17:14:08 +02:00
assert resp.data == b"OK"
def test_api_count_global(client):
2022-04-26 20:51:42 +02:00
resp = client.get("/api/comments/count")
2021-09-05 17:14:08 +02:00
d = json.loads(resp.data)
2022-04-26 20:51:42 +02:00
assert d and d["count"] == 2
2021-09-05 17:14:08 +02:00
def test_api_count_url(client):
2022-04-26 20:51:42 +02:00
resp = client.get("/api/comments/count?url=/site1")
2021-09-05 17:14:08 +02:00
d = json.loads(resp.data)
2022-04-26 20:51:42 +02:00
assert d and d["count"] == 1
resp = client.get("/api/comments/count?url=/site2")
2021-09-05 17:14:08 +02:00
d = json.loads(resp.data)
2022-04-26 20:51:42 +02:00
assert d and d["count"] == 0
2021-09-05 17:14:08 +02:00
def test_api_comment(client):
2022-04-26 20:51:42 +02:00
resp = client.get("/api/comments?url=/site1")
2021-09-05 17:14:08 +02:00
d = json.loads(resp.data)
2022-04-26 20:51:42 +02:00
assert d and len(d["data"]) == 1
comment = d["data"][0]
assert comment["author"] == "Bob"
assert comment["content"] == "comment 1"
2021-08-28 15:58:10 +02:00
2021-09-05 17:14:08 +02:00
def test_api_comment_not_found(client):
2022-04-26 20:51:42 +02:00
resp = client.get("/api/comments?url=/site2")
2021-09-05 17:14:08 +02:00
d = json.loads(resp.data)
2022-04-26 20:51:42 +02:00
assert d and d["data"] == []