AppError:错误响应:404 Not Found(不是200 OK

时间:2015-11-25 05:25:44

标签: google-app-engine nosetests webtest

我在测试API时遇到了以下错误。

AppError: Bad response: 404 Not Found (not 200 OK or 3xx redirect for http://localhost/_ah/spi/AdminAuthentication.authenticate)
'{"state": "APPLICATION_ERROR", "error_message": "No user with the E-mail address \\"foo@bar.com\\" exists."}'

这是测试功能,我写了

def test_should_not_authenticate_if_there_is_no_user_for_email(self):
    app = endpoints.api_server([AdminAuthentication], restricted=False)
    testapp = webtest.TestApp(app)
    msg = {'email': 'foo@bar.com'}
    resp = testapp.post_json('/_ah/spi/AdminAuthentication.authenticate', msg)
    self.assertEqual(resp.status_int, 404)

app.yaml文件的相应路由定义应如下所示,

- url: /_ah/spi/.*
  script: api.services.application

1 个答案:

答案 0 :(得分:2)

默认情况下,它需要状态代码200。 http://webtest.readthedocs.org/en/latest/testapp.html

  

要指示其他状态,请使用关键字参数   status = 404 to(例如)检查它是否为404状态,或   status =“*”允许任何状态,或status =“400 Custom Bad Request”   使用自定义原因短语。   如果您希望打印错误,请使用expect_errors = True。