Ваша логика довольно .. запутана.Если вы хотите проверить, является ли хотя бы одна из этих переменных не None
, то используйте any()
:
debug.assert(any(v is not None for v in (data, id, time, group)))
any()
, итерации повыражение генератора v is not None for v in (data, id, time, group)
и возвращает True
в тот момент, когда оно встречает результат True
.Это означает, что если data
не равно None
, то остальные 3 значения не проверяются.Если, однако, все 4 значения равны None
, то any()
возвращает False
и проверка утверждения не пройдена.
Я не знаю, какую платформу вы используете для проверки утверждений, я предполагал, что будет.assert()
метод.
При отлове исключения ошибки утверждения я бы не перехватил Exception
, это слишком широко и маскирует ошибки.Тестовый фреймворк вызовет определенные исключения для ошибок подтверждения сигнала, такие как встроенный AssertionError
.Вместо этого перехватите это конкретное исключение.