gpt4 book ai didi

python - 使用Django Rest Framework的APITestCase时出错

转载 作者:行者123 更新时间:2023-11-30 23:27:12 26 4
gpt4 key购买 nike

我正在尝试为 Django-Rest-Framework API 运行一些测试,但遇到错误。当我运行以下测试时,出现以下错误。

Traceback (most recent call last):
File "C:\Users\Bill\SD\DjangoApps\vidapp\startapp\tests.py", line 21, in test_get_user
response = self.client.get('/user/1/')
File "C:\Anaconda\lib\site-packages\django\test\client.py", line 473, in get
response = super(Client, self).get(path, data=data, **extra)
File "C:\Anaconda\lib\site-packages\django\test\client.py", line 280, in get
return self.request(**r)
File "C:\Anaconda\lib\site-packages\rest_framework\test.py", line 143, in request
return super(APIClient, self).request(**kwargs)
File "C:\Anaconda\lib\site-packages\rest_framework\test.py", line 95, in request
request = super(APIRequestFactory, self).request(**kwargs)
File "C:\Anaconda\lib\site-packages\django\test\client.py", line 444, in request
six.reraise(*exc_info)
File "C:\Anaconda\lib\site-packages\django\core\handlers\base.py", line 114, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: __init__() takes exactly 1 argument (2 given)

测试用例:

class UserTestCase(APITestCase):
def setUp(self):
helper.reset_test_db()

def test_get_user(self):
response = self.client.get('/user/1/')
print response.content
self.assertEqual(response.data, {'fname':'Generic','lname':'Name','token':'token1'})

网址配置:

url(r'^user/new/$', 'startapp.views.new_user'),
url(r'^user/1/$', 'startapp.views.get_1'),

浏览次数:

class get_1(APIView):
def get(self, request):
user = db_models.User.objects.get(pk=1)
if(user is not None):
serial_user = serial.UserSerializer(user)
return Response(serial_user.data)
else:
return Response(status.HTTP_404_NOT_FOUND)

我知道 View 本身有效,因为我单独测试了它。数据肯定存在,因为 helper.reset_test_db() 将其放在那里(我知道我应该使用固定装置,但这是为了测试,所以我采用了简单的路线)。 POST 和其他命令或者当我使用 Django 的 TestCase 而不是 APITestCase 时,也会发生相同的错误。虽然这是我第一次使用 Django 的 TestCase,但我阅读了 Django 和 Django Rest 文档,但似乎无法弄清楚这个问题。

最佳答案

您的案例中的 View 是基于类的 View 。

所以你必须使用as_view将其添加到urlconfig中:

url(r'^user/1/$', startapp.views.get_1.as_view()),

关于python - 使用Django Rest Framework的APITestCase时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22234443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com