96 lines
3.1 KiB
Python
96 lines
3.1 KiB
Python
from datetime import datetime
|
|
|
|
from szurubooru import api, db, model
|
|
|
|
|
|
def test_info_api(
|
|
tmpdir,
|
|
config_injector,
|
|
context_factory,
|
|
post_factory,
|
|
user_factory,
|
|
fake_datetime,
|
|
):
|
|
directory = tmpdir.mkdir("data")
|
|
directory.join("test.txt").write("abc")
|
|
auth_user = user_factory(rank=model.User.RANK_REGULAR)
|
|
anon_user = user_factory(rank=model.User.RANK_ANONYMOUS)
|
|
config_injector(
|
|
{
|
|
"name": "test installation",
|
|
"contact_email": "test@example.com",
|
|
"enable_safety": True,
|
|
"data_dir": str(directory),
|
|
"user_name_regex": "1",
|
|
"password_regex": "2",
|
|
"tag_name_regex": "3",
|
|
"tag_category_name_regex": "4",
|
|
"default_rank": "5",
|
|
"privileges": {
|
|
"test_key1": "test_value1",
|
|
"test_key2": "test_value2",
|
|
"posts:view:featured": "regular",
|
|
},
|
|
"smtp": {
|
|
"host": "example.com",
|
|
},
|
|
}
|
|
)
|
|
db.session.add_all([post_factory(), post_factory()])
|
|
db.session.flush()
|
|
|
|
expected_config_key = {
|
|
"name": "test installation",
|
|
"contactEmail": "test@example.com",
|
|
"enableSafety": True,
|
|
"userNameRegex": "1",
|
|
"passwordRegex": "2",
|
|
"tagNameRegex": "3",
|
|
"tagCategoryNameRegex": "4",
|
|
"defaultUserRank": "5",
|
|
"privileges": {
|
|
"testKey1": "test_value1",
|
|
"testKey2": "test_value2",
|
|
"posts:view:featured": "regular",
|
|
},
|
|
"canSendMails": True,
|
|
}
|
|
|
|
with fake_datetime("2016-01-01 13:00"):
|
|
assert api.info_api.get_info(context_factory(user=auth_user)) == {
|
|
"postCount": 2,
|
|
"diskUsage": 3,
|
|
"featuredPost": None,
|
|
"featuringTime": None,
|
|
"featuringUser": None,
|
|
"serverTime": datetime(2016, 1, 1, 13, 0),
|
|
"config": expected_config_key,
|
|
}
|
|
directory.join("test2.txt").write("abc")
|
|
with fake_datetime("2016-01-03 12:59"):
|
|
assert api.info_api.get_info(context_factory(user=auth_user)) == {
|
|
"postCount": 2,
|
|
"diskUsage": 3, # still 3 - it's cached
|
|
"featuredPost": None,
|
|
"featuringTime": None,
|
|
"featuringUser": None,
|
|
"serverTime": datetime(2016, 1, 3, 12, 59),
|
|
"config": expected_config_key,
|
|
}
|
|
with fake_datetime("2016-01-03 13:01"):
|
|
assert api.info_api.get_info(context_factory(user=auth_user)) == {
|
|
"postCount": 2,
|
|
"diskUsage": 6, # cache expired
|
|
"featuredPost": None,
|
|
"featuringTime": None,
|
|
"featuringUser": None,
|
|
"serverTime": datetime(2016, 1, 3, 13, 1),
|
|
"config": expected_config_key,
|
|
}
|
|
with fake_datetime("2016-01-03 13:01"):
|
|
assert api.info_api.get_info(context_factory(user=anon_user)) == {
|
|
"postCount": 2,
|
|
"diskUsage": 6, # cache expired
|
|
"serverTime": datetime(2016, 1, 3, 13, 1),
|
|
"config": expected_config_key,
|
|
}
|