在Django的unittest中更改Client()的默认域

Sha*_*shi 16 python django unit-testing django-views django-unittest

我正在为Django视图编写单元测试.

class TestLog(unittest.TestCase):
    """Test for Contact"""
    def setUp(self):
        self.c = Client()
        try:
            self.bob = User.objects.create_user("mojo","b@example.com", "bmojo")
        except :
            print ''

    def test_get_emails(self):
        response = self.c.get('/text/')
        self.assertEqual(response.status_code, 200)


    def test_htmlemils(self):
        response = self.c.get('/emails/html/upload')
        self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)

c = Client()将'http:// testserver'作为我要覆盖的域,我想在该测试客户端中添加我的真实域,是他们自定义测试客户端的方式吗?

ada*_*ish 26

Django Client 扩展了RequestFactory所以你应该能够传递额外的参数作为关键字参数.

尝试:

response = self.c.get('/emails/html/upload', SERVER_NAME="mydomain.com")
Run Code Online (Sandbox Code Playgroud)

  • 是的工作我直接在客户端添加SERVER_NAME,如C = Client(SERVER_NAME ="mydomain.com") (3认同)