Есть абстрактный класс, в нём есть сеттер, который вызывает приватную функцию валидатора. Валидатор возвращает False или True, в случае False сеттер выбрасывает исключение ValueError.
Как правильно написать тест для этого валидатора?
Если с проверкой на невалидных данных более-менее понятно (есть unittest.assertRaises()), то как проверить корректное исполнение на валидных данных, не соображу.
angru: если я испорчу валидатор и он перестанет принимать правильные данные, то на второй строчке выпадет исключение. Это уронит тестер или будет засчитано как не пройденный тест?
И с тестом самого валидатора (да, самописный) тоже есть сложность. В пайтоне, вроде, нет истинно приватных методов и двойное подчёркивание в названии — это просто декорация, но тем не менее я получаю вполне настоящий AttributeError, когда пытаюсь напрямую вызвать валидатор. ЧЯДНТ?
1. будет засчитано как не пройденный тест
2. по идее валидатор должен быть отдельным методом или классом вне текущего класса, архитектурно правильнее так сказать. тогда тестировать намного проще.
3. приватные методы неявно переименовываются. ABC.__foo в ABC._ABC__foo