34 lines
1.8 KiB
Python
34 lines
1.8 KiB
Python
# retoor <retoor@molodetz.nl>
|
|||
|
|
from molodetz.content import PLACEHOLDER_NOTE, SEED_POSTS
|
||
|
|
|
||
|
|
ROLL_SEEDS = {"A pass is not an ambition.", "Finished is a feature.", "The assistant is not a senior.", "No course."}
|
||
|
|
|
||
|
|
|
||
|
|
def test_seeded_posts_and_placeholders(anon):
|
||
|
|
roll = anon.get("/roll", headers={"Accept": "application/json"}).json()["posts"]
|
||
|
|
assert ROLL_SEEDS <= {post["title"] for post in roll}
|
||
|
|
assert all(post["is_placeholder"] for post in roll if post["title"] in ROLL_SEEDS)
|
||
|
|
assert all(post["topic"] == "roll" for post in roll)
|
||
|
|
standard = anon.get("/standard", headers={"Accept": "application/json"}).json()["posts"]
|
||
|
|
choices = next(post for post in standard if post["title"] == "Thirty-one choices. You have zero.")
|
||
|
|
assert choices["is_placeholder"] is False
|
||
|
|
assert choices["slug"].startswith("thirty-one-choices-you-have-zero-")
|
||
|
|
|
||
|
|
|
||
|
|
def test_seed_texts_are_english_and_keep_placeholder_marker():
|
||
|
|
assert {title for _, title, _ in SEED_POSTS} >= ROLL_SEEDS | {"Thirty-one choices. You have zero."}
|
||
|
|
assert PLACEHOLDER_NOTE.strip().startswith("> Placeholder.")
|
||
|
|
assert "retoor will replace it" in PLACEHOLDER_NOTE
|
||
|
|
for _, title, body in SEED_POSTS:
|
||
|
|
for dutch in (" een ", " het ", " niet ", " geen ", " wie "):
|
||
|
|
assert dutch not in f" {title.lower()} {body.lower()} ", (title, dutch)
|
||
|
|
assert chr(0x2014) not in body and chr(0x2013) not in body
|
||
|
|
|
||
|
|
|
||
|
|
def test_placeholder_note_renders_on_roll_post(anon):
|
||
|
|
roll = anon.get("/roll", headers={"Accept": "application/json"}).json()["posts"]
|
||
|
|
post = next(post for post in roll if post["title"] == "Finished is a feature.")
|
||
|
|
html = anon.get(f"/posts/{post['slug']}").text
|
||
|
|
assert "Carried over from the old Molodetz page" in html
|
||
|
|
assert "A project that stays open is an opinion." in html
|