Как проверить, отправляются ли ожидаемые данные по почте или по запросу? - PullRequest
0 голосов
/ 10 февраля 2020

Я использую запросы-макет и пытаюсь выяснить, как утверждать, что запрос put был вызван правильно:


def funtion_to_be_tested():
    requests.put(
        headers={'X-API-Key': 'api_key'},
        url=url,
        params={'param1': 'foo'},
        data='This is the data'
    )


def test_upload(requests_mock):
    url = 'http://example.com/upload'
    requests_mock.put(url, text='ok')
    funtion_to_be_tested()
    # how to check that `data` was `This is the data` and that `headers` contained the `X-API-Key`?

Редактировать: Я переделал код для проверки в функцию с именем funtion_to_be_tested

1 Ответ

0 голосов
/ 13 февраля 2020

Если вы просто хотите проверить используемый метод, вы можете проверить это, проверив отправленный запрос.

def test_upload(requests_mock: Any):
    url = 'http://example.com/upload'
    requests_mock.put(url, text='ok')
    r = requests.put(
        headers={'X-API-Key': 'api_key'},
        url=url,
        params={'param1': 'foo'},
        data='This is the data'
    )
    print(r.request.method)  # Prints PUT/POST 
    print(r.request.headers) # Prints your headers sent
    print(r.request.body)    # Prints your data sent

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

...