Я пытаюсь выполнить юнит-тест моего кода sqlalchemy.
def add_user(*user_details):
try:
u = User(*user_details)
session.add(u)
session.commit()
except:
session.rollback()
Сейчас в моем модульном тесте:
def testDuplicate(self):
add_user(user_detail1,user_detail2)
self.assertRaises(IntegrityError, add_user(user_detail1,user_detail2))
Этот тест должен пройти успешно, если вызов функции add_user вызывает ошибку целостности и завершится неудачей, если нет исключения. Но проблема в том, что тест завершается успешно в обоих случаях.
Почему это происходит?
Что-то не так в моем коде?
или assertRaises работает иначе, чем я ожидаю от него?
Сначала я думал, что это происходит, потому что я поместил, кроме как в моем предложении try, и исключение обрабатывается только там, и assertRaises не получает исключение.
Но если бы это было так, то assertRaises должен был потерпеть неудачу, не получив исключение.
Если что-то не так в написании моего модульного теста, скажите мне, потому что я все еще учусь включать модульное тестирование в мои привычки кодирования.