Aktywne Wpisy

picasssss1 +201
Klasycznie, kolejna baba która o guwniaku wspomni dopiero po jakimś czasie, a bo po co w opisie a na co komu to potrzebne, podwójnie zmarnowany czas (╯°□°)╯︵ ┻━┻
#tinder
#tinder
źródło: IMG_20251205_214019
Pobierz
Sonny86 +288
Treść przeznaczona dla osób powyżej 18 roku życia...





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?
@RedveKoronny: nie user widzi logi, a developer. jako developer mysl user => ta osoba, ktora jak kliknie 'ok' zamiast 'anuluj' to dzwoni z krzykiem, ze sie usunelo. do tego (z tego co widze) dlugi czas, wybacz jesli sie myle - ale warto ten nawyk i sposob myslenia wyrobic. w kazdej branzy, w kazdym jezyku, na kazdym
@CancerLight: patrze na docsy, i generalnie nie widzę żadnej przewagi. Jedynie co, to metoda if path exists, oraz is_file, ale dalej nie wiem czy plik jest pusty, czy co sie stanie. Dalej muszę sprawdzac czy mam permisje do zapisywania do pliku
Do testowania logów możesz użyć assertLogs, nie trzeba caploga z pytesta.
Ja tam do assertRaises nic nie mam
test_xyzi słówko kluczoweassertistniejące już w językuJest pierwsza alfa do zbierania danych. Możecie rzucić na nią proszę okiem? https://github.com/redve-dev/steam_data_science
źródło: comment_1667861256YflM6m8CC2cJsN8YzZlfRl.jpg
Pobierza co tam odwaliłem?
Myślę czy wywalić tą klasę, i zastąpić ją modułem, ale z drugiej strony, mam teraz zrobiony interfejs dla użyszkodnika