| # Copyright 2017 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Unit tests for debug_routes.py.""" |
| |
| from __future__ import absolute_import |
| from __future__ import division |
| from __future__ import print_function |
| |
| import httplib |
| from werkzeug import exceptions |
| |
| import pytest |
| |
| import main |
| import debug_routes |
| |
| # pylint: disable=redefined-outer-name,unused-argument,protected-access |
| @pytest.fixture |
| def client(): |
| main.app.testing = True |
| return main.app.test_client() |
| |
| |
| def TestExonerateLoginRequired(client): |
| assert client.post('/exonerate').status_code == httplib.UNAUTHORIZED |
| |
| |
| def TestExonerateOnlyPost(client): |
| assert client.get('/exonerate').status_code == httplib.METHOD_NOT_ALLOWED |
| |
| |
| def TestBadSchema(client): |
| with pytest.raises(exceptions.BadRequest): |
| debug_routes._ValidateSchema(debug_routes._EXONERATE_SCHEMA, { |
| 'cl': 1234, |
| 'internal': True, |
| 'build_id': 42, |
| }) |
| |
| def TestGoodSchema(client): |
| debug_routes._ValidateSchema(debug_routes._EXONERATE_SCHEMA, { |
| 'cl': 1234, |
| 'patch': 1, |
| 'internal': True, |
| 'build_id': 42, |
| }) |