Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
    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
Beispiel #4
0
 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