Skip to content
Snippets Groups Projects
test_routes.py 1.92 KiB
Newer Older
from funkwhale_network import serializers

async def test_domains_get(client, factories):
    await factories["Check"].c(private=True)
            await factories["Check"].c(private=False),
            await factories["Check"].c(private=False),
    resp = await client.get("/api/domains")
    assert resp.status == 200
    assert await resp.json() == {
        "next": None,
        "previous": None,
        "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):
    payload = {"name": "test.domain"}
    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"]}
Eliot Berriot's avatar
Eliot Berriot committed


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