55 lines
1.5 KiB
Python
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),
|
|
)
|
|
)
|