我正在测试。我的代码适用于非参数获取请求。但是如何在Rest api中进行测试时传递参数。
from rest_framework.test import RequestsClient
from rest_framework.test import APIRequestFactory
from configparser import ConfigParser
config = ConfigParser()
config.read('config.ini')
import django
django.setup()
from analyse.views_noquery import AverageTurnover
factory = APIRequestFactory()
request = factory.get('http://127.0.0.1:8000/average/turnover/start_date=2019-01-1/end_date=2019-01-1/')
view = AverageTurnover.as_view()(request)
#response = view(request)
print(view.data)
我的views.py文件
class AverageTurnover(APIView):
'''Average Turn Over'''
#permission_classes = [IsAuthenticated]
def get(self, request, start_date, end_date):
dataset = requests.get(config['url']['API_FETCH_URL']).json()
turnover_data = []
for data in dataset:
data_date = datetime.datetime.strptime(data['Date'], "%d-%b-%Y").strftime("%Y-%m-%d")
if data_date > start_date and data_date < end_date and data['Open']>data['Close'] :
turnover_data += [data['Turnover (Rs. Cr)']]
return Response({"Average Turnover" : sum(turnover_data)/len(turnover_data)})
答案 0 :(得分:0)
您可以传递带有parameter: value
对的字典arg,例如:
response = factory.get('http://127.0.0.1:8000/my-endpoint', {"param1": "value1"})
这将生成GET请求,并带有以下网址:http://127.0.0.1:8000/my-endpoint?param1=value1
检查docs。