File size: 1,035 Bytes
32c5da4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from backend.app.core.policy import ContentPolicy


def test_hard_block_always_denied() -> None:
    policy = ContentPolicy("internal-relaxed")
    decision = policy.evaluate("underage explicit scene", admin_override=True)
    assert not decision.allowed
    assert decision.reason == "blocked_illegal_content"


def test_strict_blocks_sexual_without_override() -> None:
    policy = ContentPolicy("strict")
    decision = policy.evaluate("erotic portrait", admin_override=False)
    assert not decision.allowed


def test_relaxed_allows_erotic_non_explicit() -> None:
    policy = ContentPolicy("internal-relaxed")
    decision = policy.evaluate("sensual adult portrait", admin_override=False)
    assert decision.allowed


def test_relaxed_explicit_requires_override() -> None:
    policy = ContentPolicy("internal-relaxed")
    denied = policy.evaluate("hardcore porn scene", admin_override=False)
    allowed = policy.evaluate("hardcore porn scene", admin_override=True)
    assert not denied.allowed
    assert allowed.allowed