ложные ответы Python с параметрами URL - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть этот URL, и я успешно могу вызывать эти ответы.

https://www.udemy.com/api-2.0/courses/?page=1&page_size=5

Теперь я пытаюсь смоделировать ответы и проверяю мой API, но mock выдает ConnectionError

with responses.RequestsMock() as rsps:
    url = 'https://www.udemy.com/api-2.0/courses/?page=1&page_size=5'
    rsps.add(responses.GET, url,
                     body=mocked_json, status=status_code,
                     content_type='application/json')

Ошибка: -

ConnectionError: Connection refused: GET https://www.udemy.com/api-2.0/courses?page=1&page_size=5

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Ваш пример кода не завершен, но я адаптировал некоторые примеры на основе вашего примера.

import responses
import requests

with responses.RequestsMock() as rsps:

    url = 'https://www.udemy.com/api-2.0/courses/?page=1&page_size=5'
    mocked_json = '{"key": "value"}'
    status_code = 200

    rsps.add(
        responses.GET, 
        url,
        body=mocked_json,
        status=status_code,
        content_type='application/json'
    )

    resp = requests.get('https://www.udemy.com/api-2.0/courses/?page=1&page_size=5')
    assert resp.status_code == 200
0 голосов
/ 03 декабря 2018

Вы можете использовать reports_mock

Сделайте что-то вроде:

url = 'https://www.udemy.com/api-2.0/courses/?page=1&page_size=5'
expected_response = get_test_mock_response()

with requests_mock.mock() as req_mock:
    req_mock.get(url, text=expected_response, status_code=200)

    res = call_real_request_method()
    assert res == expected_response, 'Bad response received'

Попробуйте документацию, с ней можно сделать много интересных вещей.

...