Newer
Older
from funkwhale_network import serializers
async def test_domains_get(client, factories):
await factories["Check"].c(private=True)
checks = sorted(
[
await factories["Check"].c(private=False),
await factories["Check"].c(private=False),
],
key=lambda o: o["domain"],
)
resp = await client.get("/api/domains")
assert resp.status == 200
assert await resp.json() == {
"count": len(checks),
"results": [serializers.serialize_domain_from_check(check) for check in checks],
@pytest.mark.parametrize(
"field", ["up", "open_registrations", "anonymous_can_listen", "federation_enabled"]
)
@pytest.mark.parametrize("value", [True, False])
async def test_domains_get_filter_up(client, factories, field, value):
await factories["Check"].c(private=True)
await factories["Check"].c(private=False, **{field: not value}),
check = await factories["Check"].c(private=False, **{field: value})
resp = await client.get("/api/domains", params={field: str(value)})
assert resp.status == 200
assert await resp.json() == {
"count": 1,
"next": None,
"previous": None,
"results": [serializers.serialize_domain_from_check(check)],
}
async def test_domains_create(client, coroutine_mock, mocker):
mocker.patch("funkwhale_network.crawler.fetch_nodeinfo", coroutine_mock())
resp = await client.post("/api/domains", json=payload)
assert resp.status == 201
assert await resp.json() == {"name": payload["name"]}
async def test_domains_stats(client, mocker, coroutine_mock):
payload = {"hello": "world"}
mocker.patch("funkwhale_network.db.get_stats", coroutine_mock(return_value=payload))
resp = await client.get("/api/domains/stats")
assert resp.status == 200
assert await resp.json() == payload