将请求模块与 Django APITestCase 和 APIClient 一起使用?

问题描述 投票:0回答:1

我正在尝试使用 Django 测试我的命令行客户端。我想在客户端中使用 requests 模块从 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='BDI', 
                    city='CHATSWORTH',
                    zip_code='92111', 
                    state='CA',
                    street='12345 BANDINI BLVD')
    self.Address__A2 = factories.AddressFactory(
                    name='BM', 
                    city='FAIRFIELD',
                    zip_code='92111', 
                    state='CA',
                    street='2400 HUNTINGTON BLVD')
django python-requests django-testing
1个回答
1
投票

APITestCase 已经有 APIClient 模块。 您可以使用 self.client 访问它,并且可以在测试方法中发送类似

self.client.post(#url,#data)
的请求。您可以在此处

获取有关 APIClient 的更多详细信息
© www.soinside.com 2019 - 2024. All rights reserved.