Kódím.cz
13

Logování a testování

Log je v podstatě deník aplikace, kam si zaznamenává informace o své činnosti. Testování pomáhá odhalit chyby v kódu.

2
Validátor hesla

V lekci jsme testovali metody tříd, ale pomocí TestCase můžeme testovat i samostatné funkce. Máme funkci validate_password(password), která ověřuje sílu hesla. Funkce vrátí True, pokud heslo splňuje všechna pravidla, a False, pokud ne.

Pravidla pro platné heslo:

  • Heslo má alespoň 8 znaků.
  • Heslo obsahuje alespoň jedno velké písmeno.
  • Heslo obsahuje alespoň jedno malé písmeno.
  • Heslo obsahuje alespoň jednu číslici.
def validate_password(password):
    if len(password) < 8:
        return False
    if not any(c.isupper() for c in password):
        return False
    if not any(c.islower() for c in password):
        return False
    return True

Napiš unit testy pro tuto funkci. Vytvoř testovací třídu TestValidatePassword s následujícími testy:

  • test_valid_password - ověří, že heslo "Heslo123" je platné.
  • test_too_short - ověří, že heslo "Abc1" je neplatné (příliš krátké).
  • test_missing_uppercase - ověří, že heslo "heslo123" je neplatné (chybí velké písmeno).
  • test_missing_lowercase - ověří, že heslo "HESLO123" je neplatné (chybí malé písmeno).
  • test_missing_digit - ověří, že heslo "HesloAbc" je neplatné (chybí číslice).

Testování by však mělo odhalit, že v implementaci funkce je chyba. Oprav chybu ve funkci a spusť testy znovu, aby ses ujistil, že jsou všechny v pořádku.

Řešení