【问题标题】:Django Test Client and SubdomainsDjango 测试客户端和子域
【发布时间】:2011-12-05 17:14:00
【问题描述】:

我试图弄清楚如何让 Django 测试客户端与我的应用程序配合得很好,该应用程序将每个用户放在它自己的子域中。即每个帐户都有 account1.myapp.com、account2.myapp.com。

一个用户可能是多个子域的成员(类似 basecamp 的模型),所以我在中间件中处理针对哪个子域发出请求。

在编写单元测试时,我意识到所有请求都发送到“http://testserver”,然后我的中间件将其重定向,随后的 302 未遵循,因为它被确定为外部请求。

有人知道使用测试客户端启用此功能的方法吗?我目前正在 django 中进行一些破解以启用它。

【问题讨论】:

  • 我认为测试客户端对此没有任何支持。我遇到了同样的问题,因为我需要向各种子域发出请求,而且只需要在 Django 中进行一些修改。对我来说,不同子域的 URL 不同,因此解决方案是使用自定义 urlresolvers。

标签: python django testing


【解决方案1】:

在您的测试中,使用客户端时,添加 HTTP_HOST 参数:

response = c.post(reverse('my-url'), data={}, HTTP_HOST='account1.myapp.com')

现在在您的中间件上,您应该会看到主机已更改!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-15
    • 2016-06-10
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2011-12-14
    相关资源
    最近更新 更多