mitai-jinkendo/backend/tests/test_attribute_labels.py
Lars 94ddf84262
All checks were successful
Deploy Development / deploy (push) Successful in 1m8s
Build Test / pytest-backend (push) Successful in 4s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 22s
feat: Stoff-Bezeichnungen editieren und BLS-Glossar fuellen
Kryptische Schluessel bleiben Identitaet; Namen/Einheit sind aenderbar. Nur ENERCC/PROT625/FAT/CHO schreiben die Makro-Haupttabelle.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 13:06:53 +02:00

41 lines
1.3 KiB
Python

from bls.attribute_labels import (
apply_official_name,
fill_placeholder_labels,
label_is_placeholder,
official_label,
)
def test_official_macro_labels():
assert official_label("ENERCC")["name_de"].startswith("Energie")
assert official_label("cho")["name_de"].startswith("Kohlenhydrate")
assert label_is_placeholder("ENERCC", "ENERCC")
assert label_is_placeholder("", "FAT")
assert not label_is_placeholder("Fett", "FAT")
assert apply_official_name("FAT", "FAT") == "Fett"
assert apply_official_name("FAT", "Fett gesamt") == "Fett gesamt"
def test_fill_placeholder_labels_skips_custom_names():
class _Cur:
def __init__(self):
self.rows = [
{"id": 1, "attr_key": "FAT", "name_de": "FAT", "unit": None, "category": None},
{"id": 2, "attr_key": "EPA", "name_de": "Mein EPA", "unit": "g", "category": None},
]
self.updated = []
def execute(self, sql, params=None):
self.last = (sql, params)
if "UPDATE" in sql:
self.updated.append(params)
def fetchall(self):
return self.rows
cur = _Cur()
stats = fill_placeholder_labels(cur)
assert stats["updated"] == 1
assert cur.updated[0][0] == "Fett"
assert cur.updated[0][3] == 1