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.