diff --git a/dictionaries/dev.txt b/dictionaries/dev.txt index 2984454..22db13e 100644 --- a/dictionaries/dev.txt +++ b/dictionaries/dev.txt @@ -219,6 +219,7 @@ settings shadow sidebar singleton +site skeleton slider snapshot diff --git a/dictionaries/italiano.txt b/dictionaries/italiano.txt index ecc5151..e4fc8bd 100644 --- a/dictionaries/italiano.txt +++ b/dictionaries/italiano.txt @@ -5,18 +5,23 @@ abbiamo acqua +acro adesso aggiornamento +ahi aiutare almeno alto +ami amico +ance anche ancora andare andate andiamo anno +ano appena appuntamento aprire @@ -26,19 +31,27 @@ attenzione attraverso avere avete +avi bambino +basa bassa +bela bella bello bene bere bocca +bona +bono +bruta +bruto brutta brutto buona buonasera buongiorno buono +caio cambiamento cambiare capire @@ -64,6 +77,7 @@ con condizione conoscenza contro +coro corpo corto cosa @@ -85,6 +99,7 @@ dite documentazione domanda domani +dona donna dopo dormire @@ -108,12 +123,18 @@ facilita fai famiglia fanno +fano fare +fari +faro fate +fato fatto figlia figlio finire +fore +fori forse fra fratello @@ -137,8 +158,10 @@ informazione iniziare inoltre insieme +lago largo lasciare +lato lavorare lavoro leggere @@ -152,7 +175,9 @@ mai male mangiare mano +mare meglio +mere mese messaggio mettere @@ -166,6 +191,9 @@ modo molto momento mondo +mono +moto +nano necessario necessita nessuno @@ -189,13 +217,16 @@ organizzare organizzazione padre paese +pare parlare parola parte peggio pensare per +pero piccolo +pio poco poi portare @@ -236,6 +267,7 @@ restare risposta risultato sapere +sara scrivere scuola scusa @@ -244,9 +276,11 @@ seconda secondo sei sempre +sena sentire senza servizio +sete settimana siamo sicuramente @@ -269,21 +303,26 @@ sue suo suoi sviluppo +tale tanto +temo tempo tenere terza terzo +tesa testa tipo tornare tra +tropo troppo trovare tua tue tuo tuoi +tuto tuttavia tutto ultima @@ -295,13 +334,16 @@ usare vado vai vanno +vano vecchia vecchio vedere veloce velocemente venire +vero verso +via vicino vita voi diff --git a/tests/test_typo_generators.py b/tests/test_typo_generators.py index eb355a1..6cd37b6 100644 --- a/tests/test_typo_generators.py +++ b/tests/test_typo_generators.py @@ -184,3 +184,40 @@ def test_cosnt_for_const(self): def test_reutrn_for_return(self): assert "reutrn" in ge.generate_all_typos("return") + + +# --------------------------------------------------------------------------- +# Blocklist regressions — valid Italian words must never be used as triggers +# --------------------------------------------------------------------------- + +# These tests intentionally use the real ALL_WORDS (no isolated_all_words +# fixture) because the whole point is to verify that words added to the +# dictionaries are actually loaded at runtime and excluded from typo generation. +@pytest.mark.parametrize( + ("trigger", "source"), + [ + # Transpositions of common Italian words + ("mare", "madre"), + ("vero", "verso"), + ("lago", "largo"), + ("lato", "alto"), + ("vano", "vanno"), + ("temo", "tempo"), + ("moto", "molto"), + ("sena", "senza"), + # Missing-double variants + ("fato", "fatto"), + ("fano", "fanno"), + ("tropo", "troppo"), + ("tuto", "tutto"), + # Missing-char variants (including one from dev.txt) + ("sete", "siete"), + ("site", "siete"), + # Accent (missing-accent) variants + ("faro", "farò"), + ("pero", "però"), + ("sara", "sarà"), + ], +) +def test_blocklisted_word_not_generated_as_typo(trigger, source): + assert trigger not in ge.generate_all_typos(source)