Files
stork/tests/test_name_meta.py
ilia 669568aada
CI / secret-scan (pull_request) Successful in 39s
CI / python-ci (pull_request) Successful in 57s
Add generator, nicknames, ideas mail; drop logo gallery
Ship name corpus lookup/spin, nickname suggestions, significance UX,
site-ideas SMTP, and remove the Logo concepts page and assets.
2026-08-11 20:07:58 -04:00

44 lines
1.6 KiB
Python

"""Tests for name origin/meaning autofill."""
from __future__ import annotations
from stork.name_meta import lookup_name_meta, merge_locales_with_meta
def test_curated_meta() -> None:
meta = lookup_name_meta("Rivka")
assert meta["source"] == "curated"
assert meta["known"] is True
assert "bind" in meta["meaning"].casefold() or "join" in meta["meaning"].casefold()
assert meta["locales"]["en"]["origin"] == "Hebrew"
assert meta["locales"]["ru"]["origin"] == "иврит"
assert meta["locales"]["he"]["pronunciation"] == "רבקה"
assert "Riki" in meta["nicknames"]
def test_merge_does_not_overwrite_user() -> None:
merged = merge_locales_with_meta(
"Noah",
{"en": {"pronunciation": "", "origin": "Custom", "meaning": ""}},
)
assert merged["en"]["origin"] == "Custom"
assert merged["en"]["meaning"] # filled from curated
assert merged["en"]["pronunciation"] == "Noah"
def test_slash_spelling_ettel() -> None:
meta = lookup_name_meta("Ettel / Etel")
assert meta["source"] == "curated"
assert "Yiddish" in meta["origin"] or "Ashkenazi" in meta["origin"]
assert meta["locales"]["he"]["pronunciation"]
assert meta["form_ru"]
def test_zina_cluster() -> None:
zina = lookup_name_meta("Zina")
zena = lookup_name_meta("Zena")
assert zina["source"] == "curated"
assert "Zinaida" in zina["meaning"] or "Zeus" in zina["meaning"]
assert "Arabic" in zina["origin"] or "زينة" in zina["meaning"] or "ornament" in zina["meaning"].casefold()
assert zena["locales"]["ru"]["pronunciation"] == "Зина"