From 7bd22df9076c38032ac04a2838c5b143773f5c5e Mon Sep 17 00:00:00 2001 From: Michal Konečný Date: Mar 10 2022 11:00:16 +0000 Subject: Work with bugzilla.bug.Bug object instead of dict I did a wrong assumption that Bugzilla.getbug returns dictionary, but it returns instance of bugzilla.bug.Bug object. Signed-off-by: Michal Konečný --- diff --git a/tests/utils/test_bugzilla_system.py b/tests/utils/test_bugzilla_system.py index 66918a0..33e7585 100644 --- a/tests/utils/test_bugzilla_system.py +++ b/tests/utils/test_bugzilla_system.py @@ -977,7 +977,8 @@ class TestGetBug: """Assert that bug is retrieved without issue.""" bug_id = "100" server = Mock() - server.getbug.return_value = {"bugs": [{"id": bug_id}]} + mock_bug = Mock() + server.getbug.return_value = mock_bug mock_bz.return_value = server @@ -985,14 +986,14 @@ class TestGetBug: mock_bz.assert_called_with() server.getbug.assert_called_with(id=bug_id) - assert bug == {"id": bug_id} + assert bug == mock_bug @patch("toddlers.utils.bugzilla_system.get_bz") def test_get_bug_none_found(self, mock_bz): """Assert that no bug found returns None.""" bug_id = "100" server = Mock() - server.getbug.return_value = {"bugs": []} + server.getbug.return_value = None mock_bz.return_value = server diff --git a/toddlers/utils/bugzilla_system.py b/toddlers/utils/bugzilla_system.py index 2c90b88..cfc20d4 100644 --- a/toddlers/utils/bugzilla_system.py +++ b/toddlers/utils/bugzilla_system.py @@ -14,6 +14,7 @@ from typing import ( import xmlrpc.client from bugzilla import Bugzilla +from bugzilla.bug import Bug _log = logging.getLogger(__name__) @@ -562,7 +563,7 @@ def edit_component( _log.info("[NOCHANGE] %s/%s", product, package) -def get_bug(bug_id: str) -> Optional[dict]: +def get_bug(bug_id: str) -> Optional[Bug]: """ Retrieve bug from bugzilla. @@ -570,7 +571,7 @@ def get_bug(bug_id: str) -> Optional[dict]: bug_id: Id of the bug to retrieve Returns: - Bug dictionary if bug is retrieved, otherwise None. + Bug object if bug is retrieved, otherwise None. """ bz = get_bz() @@ -584,11 +585,7 @@ def get_bug(bug_id: str) -> Optional[dict]: e.args = ("ProtocolError", e.errcode, e.errmsg) raise - # No bug retrieved - if len(bug["bugs"]) != 1: - return None - - return bug["bugs"][0] + return bug R = TypeVar("R")