将请求模块与 Django APITestCase 和 APIClient 一起使用?
Using requests module with Django APITestCase and APIClient?
我正在尝试使用 Django 测试我的命令行客户端。我想在我的客户端中使用请求模块从 Django 获取数据,但我正在 APITestCase class 中测试它,因此我可以使用 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
class:
中
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 已经有 APIClient 模块。
您可以使用 self.client 访问它,并且可以在测试方法中发送类似 self.client.post(#url,#data)
的请求。您可以获得有关 APIClient here
的更多详细信息
我正在尝试使用 Django 测试我的命令行客户端。我想在我的客户端中使用请求模块从 Django 获取数据,但我正在 APITestCase class 中测试它,因此我可以使用 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
class:
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 已经有 APIClient 模块。
您可以使用 self.client 访问它,并且可以在测试方法中发送类似 self.client.post(#url,#data)
的请求。您可以获得有关 APIClient here