Я пытаюсь выполнить модульное тестирование приложения Django и в процессе имитации вызова базы данных, используя Mock следующим образом (где Record - модель Django):
Record.objects.get = Mock()
Record.objects.get.side_effect = Exception("Record.DoesNotExist") # Exception as a string
и я улавливаю следующее исключение:
except Record.DoesNotExist:
return HttpResponseRedirect("http://www.somesite.com")
Тогда я получаю следующую ошибку при запуске теста:
Exception: Record.DoesNotExist
Если вместо этого я высмеиваю исключение следующим образом:
Record.objects.get.side_effect = Exception(Record.DoesNotExist) # Exception as a class
Тогда я получаю следующую ошибку при запуске теста:
Exception: <class 'supersales.plugin.models.DoesNotExist'>
Может ли кто-нибудь объяснить, почему он не может перехватить исключение, даже если есть блок try-Кроме.