Aktywne Wpisy

Mr_InC0gnit0 +78
Mieszkańcy #krakow macie na ten moment jedyną oraz realną szansę na pozbycie się pasożytów z organizmu. Nie zawiedźcie nas, dajcie z siebie 100% Te #referendum oraz wynik przełoży się na to, że ludzie w końcu będą mogli uwierzyć, że w kupie siła. A nie jak to mawiał pewien patopolityk "To ch…j, d…a i kamieni kupa"
Kaspii +39
#latwogang
Dołączenie pisowskich śmieci z kanału zero automatycznie wyklucza pozytywny odbiór streama, poza tym jego dieta ułożona przez kretyna wrzoska plus brak snu (nie wiem co ma we łbie jeśli myśli że da radę) skończy się źle
Dołączenie pisowskich śmieci z kanału zero automatycznie wyklucza pozytywny odbiór streama, poza tym jego dieta ułożona przez kretyna wrzoska plus brak snu (nie wiem co ma we łbie jeśli myśli że da radę) skończy się źle





Mam bardzo prostą metodę w klasie:
def save_to_file(self, path):try:
with open(path, 'w') as file:
file.write(json.dumps(self.data, indent=4))
except PermissionError:
print(f"no permissions to save the file in {path}")
Chcę odpalić unit test:
def test_write_to_file_without_permissions(self):d = data_getter(LoadFromFile=True, data_path='data.json')
self.assertRaises(PermissionError, d.save_to_file, 'no_permissions_to_write/data.json')
Problem jest taki, że jeżeli zostawię blok except w metodzie, to wtedy unit test go nie łapie. Jeżeli wyrzucę nowy error w bloku except, to zaliczam test, ale sam program wtedy się będzie wywalać.
W jaki sposób mogę zachować block except, żeby test case wykrywał że dostałem w ryj wyjątkiem nieobsłużonym?
save_to_filei złap go tam, gdzie wywołujesz tą metodędef testwritetofilewithoutpermissions(self, printmock)
...
printmock.assertcalled_once()
Żeby zrobić to jak człowiek printa zastąp loggiem i użyj caploga (nie wiem czy unittest wspiera), używaj pytesta
Jak dana klasa ma nie być reużywalna to dobry znak, że nie warto jej testować. Spróbój przetestować poziom wyżej, czyli funkcję/klasę, która jej używa. Często pisze
A czy zrobienie czegoś takiego ma sens, jeżeli chcę poinformować użyszkodnika gdzie nastąpił, jaki błąd, czy wypieprzyc w ogóle ten block try-catch razem z logami?
if os.access(path, os.W_OK)
cos co spowoduje np. w aplikacji desktopowej wyskoczenie okienka/wyraznego powiadomienia, ze nie udalo sie zapisac pliku, bo costam - nie ma uprawnien, sciezka zapisu nie istnieje, plik nie istnieje, gwiazdy sa zle ustawione etc. tak, zeby