Использование модуля запросов с Django APITestCase и APIClient? - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь проверить мой клиент командной строки с Django. Я хочу использовать модуль запросов в моем клиенте для извлечения данных из Django, но я тестирую это внутри класса APITestCase, чтобы я мог создавать фабрики, используя Factory_Boy.

Я получаю сообщение об ошибке соединения отказано.

Файл в моем интерфейсе для вызова представления:

from . import urls
import requests, json
HEADERS = {'content-type':'application/json'}
BASE_URL = 'http://127.0.0.1:80/'

def post(url, **data):
    query = json.dumps(data)
    r = requests.post(BASE_URL+url, data=query, headers=HEADERS)
    return r.json()


def get(url, **data):
    query = json.dumps(data)
    r = requests.get(BASE_URL+url, data=query, headers=HEADERS)
    return r.json()

Файл тестов для приложения Django внутри класса APITestCase:

def setUp(self):
    self.client = APIClient()
    self.populate_addresses()
    self.populate_carriers()
    self.populate_drivers()



def test_requests(self):
    a = query.query_address(err_msg='Stop not found.',
                            conf_msg='Create new stop.')






def populate_addresses(self):
    self.Address__A1 = factories.AddressFactory(
                    name='BANDINI', 
                    city='CHATSWORTH',
                    zip_code='92392', 
                    state='CA',
                    street='12345 BANDINI BLVD')
    self.Address__A2 = factories.AddressFactory(
                    name='BALL METAL', 
                    city='FAIRFIELD',
                    zip_code='92392', 
                    state='CA',
                    street='2400 HUNTINGTON BLVD')

1 Ответ

1 голос
/ 10 марта 2020

APITestCase уже имеет APIClient модуль. Вы можете получить к нему доступ через self.client и отправить запрос типа self.client.post(#url,#data) в своих методах тестирования. Вы можете получить более подробную информацию о APIClient здесь

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