This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
szurubooru/server/szurubooru/tests/api/test_snapshot_retrieving.py

55 lines
1.5 KiB
Python

from datetime import datetime
import pytest
from szurubooru import api, db, errors, model
def snapshot_factory():
snapshot = model.Snapshot()
snapshot.creation_time = datetime(1999, 1, 1)
snapshot.resource_type = "dummy"
snapshot.resource_pkey = 1
snapshot.resource_name = "dummy"
snapshot.operation = "added"
snapshot.data = "{}"
return snapshot
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector(
{
"privileges": {"snapshots:list": model.User.RANK_REGULAR},
}
)
def test_retrieving_multiple(user_factory, context_factory):
snapshot1 = snapshot_factory()
snapshot2 = snapshot_factory()
db.session.add_all([snapshot1, snapshot2])
db.session.flush()
result = api.snapshot_api.get_snapshots(
context_factory(
params={"query": "", "offset": 0},
user=user_factory(rank=model.User.RANK_REGULAR),
)
)
assert result["query"] == ""
assert result["offset"] == 0
assert result["limit"] == 100
assert result["total"] == 2
assert len(result["results"]) == 2
def test_trying_to_retrieve_multiple_without_privileges(
user_factory, context_factory
):
with pytest.raises(errors.AuthError):
api.snapshot_api.get_snapshots(
context_factory(
params={"query": "", "offset": 0},
user=user_factory(rank=model.User.RANK_ANONYMOUS),
)
)