1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 |
from prami import engine, memory
from prami import repository as repo
def as_admin(config, user):
config.admin_accounts = [user.acct]
def test_nonadmin_is_ignored(session, pet, user, config):
config.admin_accounts = []
assert engine.handle(session, pet, user, "admin", config, arg="pause") is None
def test_nonadmin_refusal_when_configured(session, pet, user, config):
config.admin_accounts = []
config.admin_refuse_nonadmin = True
result = engine.handle(session, pet, user, "admin", config, arg="pause")
assert result is not None and result.accepted is False
def test_admin_pause_and_resume(session, pet, user, config):
as_admin(config, user)
engine.handle(session, pet, user, "admin", config, arg="pause")
assert repo.get_settings(session, config).paused is True
engine.handle(session, pet, user, "admin", config, arg="resume")
assert repo.get_settings(session, config).paused is False
def test_admin_pause_blocks_other_users(session, pet, user, config):
as_admin(config, user)
engine.handle(session, pet, user, "admin", config, arg="pause")
other = repo.get_or_create_user(session, "bob@example.social")
assert engine.handle(session, pet, other, "feed", config) is None
def test_admin_toggle_favourites(session, pet, user, config):
as_admin(config, user)
engine.handle(session, pet, user, "admin", config, arg="set-favourites on")
assert repo.get_settings(session, config).favourites_enabled is True
def test_admin_set_visibility(session, pet, user, config):
as_admin(config, user)
engine.handle(session, pet, user, "admin", config, arg="set-visibility public")
assert repo.get_settings(session, config).default_visibility == "public"
def test_admin_approve_memory(session, pet, user, config):
as_admin(config, user)
config.enable_teach_command = True
other = repo.get_or_create_user(session, "carol@example.social")
suggestion = memory.submit(session, pet, other, "Prami likes blankets", config)
result = engine.handle(session, pet, user, "admin", config, arg=f"approve-memory {suggestion.id}")
assert "Approved" in result.text
assert memory.get(session, suggestion.id).status == "approved"
def test_admin_block_and_unblock(session, pet, user, config):
as_admin(config, user)
engine.handle(session, pet, user, "admin", config, arg="block @troll@bad.social")
assert repo.get_user(session, "troll@bad.social").blocked is True
engine.handle(session, pet, user, "admin", config, arg="unblock @troll@bad.social")
assert repo.get_user(session, "troll@bad.social").blocked is False
def test_admin_status_text(session, pet, user, config):
as_admin(config, user)
result = engine.handle(session, pet, user, "admin", config, arg="status")
assert "paused=" in result.text
|