diff --git a/tests/utils/test_pagure.py b/tests/utils/test_pagure.py index 20e330b..e89d22f 100644 --- a/tests/utils/test_pagure.py +++ b/tests/utils/test_pagure.py @@ -1107,7 +1107,7 @@ class TestPagureGetProject: Assert that getting project_info works correctly. """ response_mock = Mock() - response_mock.status_code = 200 + response_mock.ok = True project_name = "zlopez" data = {"name": project_name} @@ -1128,14 +1128,37 @@ class TestPagureGetProject: assert result == data + def test_get_project_doesnt_exist(self): + """ + Assert that getting project_info doesn't return anything if the project doesn't exist. + """ + response_mock = Mock() + response_mock.ok = False + response_mock.status_code = 404 + + self.pagure._requests_session.get.return_value = response_mock + + namespace = "namespace" + repo = "repo" + + result = self.pagure.get_project(namespace, repo) + + self.pagure._requests_session.get.assert_called_with( + "https://pagure.io/api/0/{0}/{1}".format(namespace, repo), + headers=self.pagure.get_auth_header(), + ) + + assert result is None + def test_get_project_failure(self): """ Assert that failing to get project data is handled correctly. """ response_mock = Mock() + response_mock.ok = False response_mock.status_code = 500 - self.pagure._requests_session.get.side_effect = response_mock + self.pagure._requests_session.get.return_value = response_mock namespace = "namespace" repo = "repo" diff --git a/toddlers/utils/pagure.py b/toddlers/utils/pagure.py index 570a260..5aeb063 100644 --- a/toddlers/utils/pagure.py +++ b/toddlers/utils/pagure.py @@ -555,13 +555,15 @@ class Pagure: log.debug("Getting project '{0}/{1}'".format(namespace, repo)) response = self._requests_session.get(contributors_api_url, headers=headers) - if response.status_code != 200: + if response.ok: + result = response.json() + elif response.status_code == 404: + result = None + else: log.error( "Error when retrieving project '{0}/{1}'. " "Got status_code '{2}'.".format(namespace, repo, response.status_code) ) raise PagureError("Couldn't get project '{0}/{1}'".format(namespace, repo)) - result = response.json() - return result