def test_pdc_api_get(self, session): """ Ensure that an API request to PDC works as expected. """ session.get.return_value.status_code = 200 expected_json = { "count": 1, "next": None, "previous": None, "results": [{ "id": 1, "sla": "security_fixes", "branch": { "id": 1, "name": "2.7", "global_component": "python", "type": "rpm", "active": True, "critical_path": True }, "eol": "2018-04-27" }] } session.get.return_value.json.return_value = expected_json rv = util.pdc_api_get( 'http://domain.local/rest_api/v1/component-branch-slas/') assert rv == expected_json, rv
def test_pdc_api_get_500_error(self, session): """ Ensure that an API request to PDC that triggers a 500 error raises the expected error message. """ session.get.return_value.status_code = 500 try: util.pdc_api_get( 'http://domain.local/rest_api/v1/component-branch-slas/') assert False, 'Did not raise a RuntimeError' except RuntimeError as error: actual_error = six.text_type(error) expected_error = ( 'Bodhi failed to get a resource from PDC at the following URL ' '"http://domain.local/rest_api/v1/component-branch-slas/". The ' 'status code was "500".') assert actual_error == expected_error, actual_error
def test_pdc_api_get_non_500_error_no_json(self, session): """ Ensure that an API request to PDC that raises an error that is not a 500 error and has no JSON returns an error. """ session.get.return_value.status_code = 404 session.get.return_value.json.side_effect = ValueError('Not JSON') try: util.pdc_api_get( 'http://domain.local/rest_api/v1/component-branch-slas/3/') assert False, 'Did not raise a RuntimeError' except RuntimeError as error: actual_error = six.text_type(error) expected_error = ( 'Bodhi failed to get a resource from PDC at the following URL ' '"http://domain.local/rest_api/v1/component-branch-slas/3/". The ' 'status code was "404". The error was "".') assert actual_error == expected_error, actual_error
def test_pdc_api_get_non_500_error(self, session): """ Ensure that an API request to PDC that raises an error that is not a 500 error returns the returned JSON. """ session.get.return_value.status_code = 404 session.get.return_value.json.return_value = {"detail": "Not found."} try: util.pdc_api_get( 'http://domain.local/rest_api/v1/component-branch-slas/3/') assert False, 'Did not raise a RuntimeError' except RuntimeError as error: actual_error = six.text_type(error) expected_error = ( 'Bodhi failed to get a resource from PDC at the following URL ' '"http://domain.local/rest_api/v1/component-branch-slas/3/". The ' 'status code was "404". The error was ' '"{\'detail\': \'Not found.\'}".') assert actual_error == expected_error, actual_error