当前位置: 首页 > 知识库问答 >
问题:

如何才能正确地将参数传递给测试Django Rest框架的classbasedviews?

常英资
2023-03-14

    url(r'^(?Pcompany_hash>[\d\w]+)/(?Ptimestamp>[\.\d]*)/employees/$',
        EmployeeList.as_view(), name='employeelist'),

[编辑:url中的“<”已被删除,只是它不被视为标记,因此未显示]

views.py

    class EmployeeList(ListCreateAPIView):
        serializer_class = EmployeeDirectorySerializer

        def inner_company(self):
            company_hash = self.kwargs['company_hash']
            return get_company(company_hash)

        def get_queryset(self):
            return Employee.objects.filter(company=self.inner_company())

test.py


class ApiTests(APITestCase):
    def setUp(self):
        self.factory = APIRequestFactory()
        self.staff = mommy.make('directory.Employee', user__is_staff=True)
        self.employee = mommy.make('directory.Employee')

        self.hash = self.employee.company.company_hash

    def getResponse(self, url, myView, kwargs):
        view = myView.as_view()
        request = self.factory.get(url, kwargs)

        force_authenticate(request, user=user)

        response = view(request)
        return response

    def test_EmployeeList(self):
        kwargs = {'timestamp': 0, 'company_hash': self.hash}
        url = reverse('employeelist', kwargs=kwargs)
        testedView = EmployeeList

        response = self.getResponse(url, testedView,
                kwargs=kwargs)
        self.assertEqual(response.status_code, 200)
    company_hash = self.kwargs['company_hash']
KeyError: 'company_hash'

共有1个答案

孔扬
2023-03-14

在URL conf中检查regex语法。您没有正确捕获命名组。你有

(?<P 

而不是

(?P<

https://docs.djangoproject.com/en/1.8/topics/http/urls/#命名组

 类似资料:
  • 问题内容: 我正在尝试学习go,并且一开始我想尝试组装一个超级简单的Web服务器来控制iTunes。过去,我已经多次达到这个目的,并认为我可以在这里简单地取消对osascript的调用。 注释掉的“ say 5”命令 确实 起作用。 我收到的回应如下: 我不确定从这里要去哪里,任何方向都将不胜感激。 问题答案: 我明白了 我认为exec.Command(…)如果参数中有空格,则在参数中添加双引号,

  • 如何将 RelayState 正确传递到 Okta 端 ACS URL,以便它到达输入的 IdP? 我把 在 ACS URL 上,IdP 得到一个 SAMLRequest,中继状态为 哪个解码为 . 如果我把<代码>?RelayState=相反,如我所料,带有SAMLRequest的RelayState为空。 我附上了NetworkData.xml这是从Internet Explorer捕获的。在

  • 问题内容: 我正在A中使用RUN指令安装rpm 但是,我想将值“ 2.3”作为参数传递。我的RUN指令应类似于: 哪里 问题答案: 您正在寻找和指导。这些是Docker 1.9中的新功能。查看https://docs.docker.com/engine/reference/builder/#arg。这将允许您添加到,然后使用构建。

  • 我试图在一个基于类的视图实例中传递参数,但我无法找到正确的方法。 我的api服务在REST框架视图中工作良好,并接收两个强制参数(用户和语言): 我找到了类似的答案,但发送参数作为回报,那不是我的情况。这是我的决定, 只发送值: api/urls.py API/API.PY 额外的:我如何发送一个额外的可选参数? 非常感谢,如有任何帮助,我们将不胜感激:)

  • 我目前正在使用环境变量向负载测试传递自定义参数。例如,我的测试类如下所示: 然后,我将使用以下工具运行测试: 有没有更多的方式可以将自定义参数传递给命令行应用程序?

  • 问题内容: 我想将登录用户单击的sa 列表中的传递给twitter bootstrap 。我正在与 angularjs* 一起使用 grails ,其中数据是通过 angularjs 呈现的。 *** 组态 我的grails视图页面是 我的是 所以,我怎么能传递到? 问题答案: 我尝试如下。 我在 鼓励 按钮上打电话给angularjs控制器, 我设置的从angularjs控制器。 我提供了一个p