将请求模块与Django APITestCase和APIClient结合使用



我正在尝试用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')

APITestCase已经有API客户端模块。您可以使用self.client访问它,并可以在测试方法中发送类似self.client.post(#url,#data)的请求。你可以在这里获得更多关于APIClient的详细信息

最新更新