"""Granica modułu generowania jest KATALOGIEM, nie warunkiem w szablonie. Astrololo zawiera `app/ai/`. Astroklient — nie, i to jedyna różnica między nimi po stronie funkcji astrologicznych. Żeby usunięcie katalogu naprawdę usuwało funkcję, poza nim nie może zostać ani jedno słowo o niej: ani w kodzie, ani w szablonie, ani w komentarzu, ani zaprzeczeniem („bez promptów"). Warunek `{% if can(request, 'ai') %}` w szablonie wspólnym tego nie daje. Funkcji nie WIDAĆ, ale plik dalej leży w obrazie i dalej zawiera jej nazwy — `grep` po kontenerze pokazuje wszystko, czego warunek nie pokazał na ekranie. Ten test jest jedynym miejscem poza modułem, gdzie te słowa wolno wypisać. """ import pathlib import re import pytest APP = pathlib.Path(__file__).resolve().parents[1] / "app" MODUL = APP / "dodatki" SLOWA = [ # nazwa funkcji i jej słownictwo "prompt", "LLM", "model językow", "generowanie tekstu", "sztuczn", # dostawcy i modele "anthropic", "openai", "gpt", "claude", # angielska nazwa akcji (polski „horoskop" to nazwa EKRANU i jest w porządku) "horoscope", # nazwy plików modułu — sam odsyłacz podpowiada, co program potrafi "x-ai.css", "models.js", "progress.js", "natal.js", "predictions.js", "_prompt_block", "_prompt_result", ] WZORCE = [(r"(?