Я пытаюсь получить ответ от API с кодом ниже.Я получаю результат и печатаю его как response.text
.Для этого же я пытаюсь написать модульный тест.Я могу смоделировать ответ API с содержимым JSON.Но я получаю сообщение об ошибке, как показано ниже, во время выполнения модульного теста.
AttributeError: 'dict' object has no attribute 'text'
Код:
import requests
from requests.auth import HTTPBasicAuth
import json
def get_call():
url = 'https://test/api/v1'
username = 'NTdasj'
pwd = '3214234'
response = requests.get(url, auth=HTTPBasicAuth(username, pwd))
data = json.loads(response.text)
print(data)
Код испытания единицы измерения:
from get_api import get_call
from mock import patch
import os
import sys
import json
testdir = os.path.dirname(__file__)
sys.path.insert(0, os.path.abspath(os.path.join(testdir)))
resp = {
"success": True,
"message": "Data exist",
"data": []
}
response = json.dumps(resp)
newresponse = json.loads(response)
@patch('get_api.requests.get')
def test_get_call(get):
get.side_effect = [newresponse]
get_call()