издевательство над методом post в unittest не работает - PullRequest
0 голосов
/ 09 апреля 2019

Я написал некоторый код для своего веб-сайта, который отправляет смс-подтверждение пользователям, код работает правильно, но теперь я хочу проверить его, и мне нужно смоделировать отправку кода, но проверка не работает.

вот весь мой код: У меня есть вид, который отправляет код подтверждения пользователю, как показано ниже:

view.py
class SendCode(GenericAPIView):
    def post(self, request, *args, **kwargs):
        """some of code that send messages"

Я написал тест, который не работает:

@mock.patch('view.SendCode.post', autospec=True)
class MyTest(unittest.TestCase):
    def setUp(self):
        self.client = Client()

    def test_get_data(self, mock_call_external_api):
        data = {'phone': '11111111'}
        self.client.post('/send-code/',json.dumps(data),                                       content_type='application/json')
        self.assertTrue(mock_call_external_api.called)

и здесь у меня появляется следующая ошибка:

AssertionError: Expected a `Response`, `HttpResponse` or   `HttpStreamingResponse` to be returned from the view, but received a `<class 'unittest.mock.MagicMock'>

Я пробовал множество решений, таких как изменение пути исправления, но оно не работает. заранее спасибо за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...