def test_pagure_api_get_500_error(self, session): """ Ensure that an API request to Pagure that triggers a 500 error raises the expected error message. """ session.get.return_value.status_code = 500 try: util.pagure_api_get('http://domain.local/api/0/rpms/python') 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 Pagure at the following URL ' '"http://domain.local/api/0/rpms/python". The status code was ' '"500".') assert actual_error == expected_error, actual_error
def test_pagure_api_get_non_500_error_no_json(self, session): """ Ensure that an API request to Pagure 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.pagure_api_get('http://domain.local/api/0/rpms/python') 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 Pagure at the following URL ' '"http://domain.local/api/0/rpms/python". The status code was ' '"404". The error was "".') assert actual_error == expected_error, actual_error
def test_pagure_api_get_non_500_error(self, session): """ Ensure that an API request to Pagure that raises an error that is not a 500 error returns the actual error message from the JSON. """ session.get.return_value.status_code = 404 session.get.return_value.json.return_value = { "error": "Project not found", "error_code": "ENOPROJECT" } try: util.pagure_api_get('http://domain.local/api/0/rpms/python') 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 Pagure at the following URL ' '"http://domain.local/api/0/rpms/python". The status code was ' '"404". The error was "Project not found".') assert actual_error == expected_error, actual_error
def test_pagure_api_get(self, session): """ Ensure that an API request to Pagure works as expected. """ session.get.return_value.status_code = 200 expected_json = { "access_groups": { "admin": [], "commit": [], "ticket": [] }, "access_users": { "admin": [], "commit": [], "owner": ["mprahl"], "ticket": [] }, "close_status": [], "custom_keys": [], "date_created": "1494947106", "description": "Python", "fullname": "rpms/python", "id": 2, "milestones": {}, "name": "python", "namespace": "rpms", "parent": None, "priorities": {}, "tags": [], "user": { "fullname": "Matt Prahl", "name": "mprahl" } } session.get.return_value.json.return_value = expected_json rv = util.pagure_api_get('http://domain.local/api/0/rpms/python') assert rv == expected_json, rv