kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
64 wiersze
2.0 KiB
Python
64 wiersze
2.0 KiB
Python
|
import pytest
|
||
|
|
||
|
from funkwhale_api.moderation import mrf
|
||
|
from funkwhale_api.moderation import mrf_policies
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
"enabled, payload, kwargs, allowed_domains, expected",
|
||
|
[
|
||
|
# allow listing enabled, domain on allowed list -> nothing happens
|
||
|
(
|
||
|
True,
|
||
|
{"id": "http://allowed.example"},
|
||
|
{"sender_id": "http://allowed.example/actor"},
|
||
|
["allowed.example"],
|
||
|
None,
|
||
|
),
|
||
|
# allow listing enabled, domain NOT on allowed list -> message discarded
|
||
|
(
|
||
|
True,
|
||
|
{"id": "http://notallowed.example"},
|
||
|
{"sender_id": "http://notallowed.example/actor"},
|
||
|
["allowed.example"],
|
||
|
mrf.Discard,
|
||
|
),
|
||
|
# allow listing disabled -> policy skipped
|
||
|
(
|
||
|
False,
|
||
|
{"id": "http://allowed.example"},
|
||
|
{"sender_id": "http://allowed.example/actor"},
|
||
|
[],
|
||
|
mrf.Skip,
|
||
|
),
|
||
|
# multiple domains to check, one is not allowed -> message discarded
|
||
|
(
|
||
|
True,
|
||
|
{"id": "http://allowed.example"},
|
||
|
{"sender_id": "http://notallowed.example/actor"},
|
||
|
["allowed.example"],
|
||
|
mrf.Discard,
|
||
|
),
|
||
|
# multiple domains to check, all allowed -> nothing happens
|
||
|
(
|
||
|
True,
|
||
|
{"id": "http://allowed.example"},
|
||
|
{"sender_id": "http://anotherallowed.example/actor"},
|
||
|
["allowed.example", "anotherallowed.example"],
|
||
|
None,
|
||
|
),
|
||
|
],
|
||
|
)
|
||
|
def test_allow_list_policy(
|
||
|
enabled, payload, kwargs, expected, allowed_domains, preferences, factories
|
||
|
):
|
||
|
preferences["moderation__allow_list_enabled"] = enabled
|
||
|
for d in allowed_domains:
|
||
|
factories["federation.Domain"](name=d, allowed=True)
|
||
|
|
||
|
if expected:
|
||
|
with pytest.raises(expected):
|
||
|
mrf_policies.check_allow_list(payload, **kwargs)
|
||
|
else:
|
||
|
assert mrf_policies.check_allow_list(payload, **kwargs) == expected
|