From 02041b569bd4871aa91ac06674f06a6f0374fa63 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Oct 01 2020 13:09:14 +0000 Subject: lib: better argument checking for eventFromOpts Fixes: https://pagure.io/koji/issue/2513 --- diff --git a/koji/util.py b/koji/util.py index c7203d1..f0a5824 100644 --- a/koji/util.py +++ b/koji/util.py @@ -546,14 +546,13 @@ def eventFromOpts(session, opts): if event_id: return session.getEvent(event_id) ts = getattr(opts, 'ts') - if ts: + if ts is not None: return session.getLastEvent(before=ts) repo = getattr(opts, 'repo') - if repo: - rinfo = session.repoInfo(repo) - if rinfo: - return {'id': rinfo['create_event'], - 'ts': rinfo['create_ts']} + if repo is not None: + rinfo = session.repoInfo(repo, strict=True) + return {'id': rinfo['create_event'], + 'ts': rinfo['create_ts']} return None diff --git a/tests/test_lib/test_utils.py b/tests/test_lib/test_utils.py index 553b44c..690af2e 100644 --- a/tests/test_lib/test_utils.py +++ b/tests/test_lib/test_utils.py @@ -1124,11 +1124,11 @@ class MavenUtilTestCase(unittest.TestCase): self.assertEqual(None, koji.util.eventFromOpts(session, opts)) # opts.ts = timestamp - opts = mock.MagicMock(event='', ts=timestamp) + opts = mock.MagicMock(event=None, ts=timestamp) self.assertEqual(event, koji.util.eventFromOpts(session, opts)) # opts.repo = '1' - opts = mock.MagicMock(event='', ts='', repo=1) + opts = mock.MagicMock(event=None, ts=None, repo=1) expect = {'id': repo_info['create_event'], 'ts': repo_info['create_ts']} @@ -1137,9 +1137,13 @@ class MavenUtilTestCase(unittest.TestCase): six.assertCountEqual(self, list(expect.items()), list(actual.items())) # no event is matched case - opts = mock.MagicMock(event=0, ts=0, repo=0) + opts = mock.MagicMock(event=None, ts=None, repo=None) self.assertEqual(None, koji.util.eventFromOpts(session, opts)) + # special case for ts 0 + opts = mock.MagicMock(event=None, ts=0, repo=None) + self.assertEqual(event, koji.util.eventFromOpts(session, opts)) + def test_setup_rlimits(self): """Test test_setup_rlimits function""" logger = mock.MagicMock()