Я бы просто исправил функцию Flask abort
и удостоверился, что она вызывается с правильным значением, это предпочтительно, поскольку он проверяет только ваш код, а не поведение функции Flasks abort
, которая может измениться в будущих версиях Flask ипрервите свои тесты.
См. ниже пример, основанный на вашем коде, который также включает примеры тестирования исключения, если вы предпочитаете это делать.
# code.py
from flask import abort
def my_function():
abort(400, "error")
# test.py
import unittest
from unittest.mock import patch
from werkzeug import exceptions
import code # Your code file code.py
class Tests(unittest.TestCase):
@patch('code.abort')
def test_one(self, mock_abort):
code.my_function()
mock_abort.assert_called_once_with(400, 'error')
def test_two(self):
with self.assertRaises(exceptions.BadRequest):
code.my_function()
def test_three(self):
with self.assertRaisesRegexp(exceptions.BadRequest, '400 Bad Request: error'):
code.my_function()
unittest.main(argv=[''], verbosity=2, exit=False)