Конспект і таймкоди
0:00
`if`, `elif`, `else` і межі status codes
if запускає блок лише для truthy умови, elif перевіряє наступний варіант, а else покриває залишок. Для HTTP ranges треба явно визначати inclusive/exclusive boundaries: success зазвичай 200 <= code < 300, client error — 400 <= code < 500, server error — 500 <= code < 600.
Якщо result створюється лише всередині гілок, неочікуване значення може залишити змінну неініціалізованою. Мінімальні безпечні варіанти — початковий result = "unknown" або завершальний else. Це важливо для нестандартних status codes та пошкоджених test data.
3:01
Порядок гілок і семантика HTTP response
Ланцюг if/elif зупиняється на першій істинній умові, тому вузькі діапазони не повинні бути перекриті ширшими попередніми умовами. Status code описує результат HTTP-обробки, але не гарантує відсутність side effects: система могла записати дані, а потім повернути 500. Тест має перевіряти і response, і важливий стан системи.
5:31
`None`, truthiness і membership
Optional message перевіряється через is None. Порожні list/dict/set є false-like, тому if not errors читається як «помилок немає». Для allowlist browser-ів вираз browser in supported_browsers коротший і точніший за ланцюг or, але значення все одно чутливі до регістру та точної назви.
7:30
`match/case` і вибір простої конструкції
match/case зручний для багатьох чітких варіантів на кшталт окремих auth codes, але для двох-трьох ranges звичайний if/elif часто простіший. Розширені приклади пропонують додати assertions і exceptions та подивитися, як змінюється failure output.