Django [AssertionError:400!= 201]

时间:2015-04-06 13:16:05

标签: python django assert http-status-code-400

我是一个法国人,我正在研究Django。我开始,我有一个错误。

def setUp(self):
    self.username = 'admin'
    self.password = 'admin'
    self.datetime = 'Tue, 15 Nov 1994 08:12:31 GMT'
    self.temperature = '15.6'
    self.presence = '56'


def test_presence_post(self):
    #frame = 'presence=' + self.presence + '&datetime=2014-12-12 16:45:45'

    c = Client()
    c.login(username=self.username, password=self.password)
    response = c.post('/datapresence', {'presence=' + self.presence + '&datetime=2014-12-12 16:45:45'}, 
        content_type="application/x-www-form-urlencoded", HTTP_DATE=datetime)
    self.assertEqual(response.status_code, 201)

我的错误:
self.assertEqual(response.status_code,201) 断言错误:400!= 201

如果我使用高级休息客户端,则可以使用带有网址和数据的POST请求。

非常感谢。

1 个答案:

答案 0 :(得分:1)

{'presence=' + self.presence + '&datetime=2014-12-12 16:45:45'}是一个包含单个键且没有值的集合,而不是post()所期望的字典。应该是{'presence': self.presence, 'datetime':'2014-12-12 16:45:45'}。服务器检测到无效请求并返回400。

我也会尝试不使用content_type="application/x-www-form-urlencoded", HTTP_DATE=datetime,默认值应该至少与提供的值一样好。