Placeholder #4457
Example failure
self = <tests.test_plugins.test_sidetag_hub.TestCreateSideTagHub testMethod=test_createsidetag_basic> def test_createsidetag_basic(self): self.query_executeOne.return_value = {'user_tags': 0} sidetag_name = 'base_tag-side-12346' self.context.session.assertLogin = mock.MagicMock() self.context.session.user_id = 23 self.get_user.return_value = self.user self.get_tag.return_value = self.basetag self.nextval.return_value = 12345 self._create_tag.return_value = 12346 ret = sidetag_hub.createSideTag('base_tag') > self.assertEqual(ret, {'name': sidetag_name, 'id': 12346, 'task_id': None, 'request': None}) E AssertionError: {'nam[13 chars]-sidetag-12346', 'id': 12346, 'task_id': None, 'request': None} != {'nam[13 chars]-side-12346', 'id': 12346, 'task_id': None, 'request': None} E + {'id': 12346, 'name': 'base_tag-side-12346', 'request': None, 'task_id': None} E - {'id': 12346, E - 'name': 'base_tag-sidetag-12346', E - 'request': None, E - 'task_id': None} tests/test_plugins/test_sidetag_hub.py:56: AssertionError
Metadata Update from @mikem: - Custom field Size adjusted to None
The bad ensuredir mock could cause strange errors depending on ordering. E.g.
self = <tests.test_cli.test_prune_signed_copies.TestPruneSignedCopies testMethod=test_handle_prune_signes_copies_unlink_perms_error> stdout = <_io.StringIO object at 0x7fe7aa4759c0> pathinfobuild = <MagicMock name='build' id='140632800076736'> timeasctime = <MagicMock name='asctime' id='140632800077072'> timetime = <MagicMock name='time' id='140632800076400'> lstat = <MagicMock name='lstat' id='140632800081104'> isreg = <MagicMock name='S_ISREG' id='140632800081776'> @mock.patch('stat.S_ISREG') @mock.patch('os.lstat') @mock.patch('time.time', return_value=1682063424) @mock.patch('time.asctime', return_value='Sat Apr 20 14:08:17 2023') @mock.patch('koji.pathinfo.build', return_value='fakebuildpath') @mock.patch('sys.stdout', new_callable=six.StringIO) def test_handle_prune_signes_copies_unlink_perms_error( self, stdout, pathinfobuild, timeasctime, timetime, lstat, isreg): """Returns prune signed copies info with unlink perms error""" self.options.debug = True arguments = ['--verbose', '--package', 'package-name'] list_rpms = [{'id': 123, 'name': 'test', 'version': '1.3', 'release': 1, 'arch': 'test-arch', 'external_repo_name': 'ext-repo', 'external_repo_id': 456, 'build_id': 1}] self.session.getPackage.return_value = {'id': 135, 'name': 'package-name'} self.session.listBuilds.side_effect = [ [{'build_id': 1, 'nvr': 'package-name-1.3-4', 'package_name': 'package-name'}], []] self.session.queryHistory.side_effect = [ {'tag_listing': [{'tag.name': 'test-tag1'}, {'tag.name': 'test-tag2'}]}, {'tag_listing': [{'active': True, 'build_id': 1, 'create_event': 11, 'create_ts': 1681191826, 'name': 'package-name', 'release': '4', 'revoke_event': 22, 'revoke_ts': 1681191836, 'tag_name': 'test-tag1', 'version': '1.3'}, {'active': True, 'build_id': 1, 'create_event': 33, 'create_ts': 1681191846, 'name': 'package-name', 'release': '4', 'revoke_event': 44, 'revoke_ts': 1681191856, 'tag_name': 'test-tag1', 'version': '1.3'}]}, {'tag_listing': [{'active': True, 'build_id': 1, 'create_event': 11, 'create_ts': 1681191826, 'name': 'package-name', 'release': '4', 'revoke_event': 22, 'revoke_ts': 1681191836, 'tag_name': 'test-tag2', 'version': '1.3'}, {'active': True, 'build_id': 1, 'create_event': 33, 'create_ts': 1681191846, 'name': 'package-name', 'release': '4', 'revoke_event': 44, 'revoke_ts': 1681191856, 'tag_name': 'test-tag2', 'version': '1.3'}]} ] self.session.listRPMs.return_value = list_rpms sigRpm = [[[{'rpm_id': 123, 'sigkey': 'qwertyuiop'}]]] self.session.multiCall.return_value = sigRpm stat = mock.MagicMock() stat.st_mode = 'mode' stat.st_mtime = 1681191826 lstat.return_value = stat isreg.return_value = True > rv = handle_prune_signed_copies(self.options, self.session, arguments) tests/test_cli/test_prune_signed_copies.py:595: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cli/koji_cli/commands.py:2002: in handle_prune_signed_copies print("Tags: %s" % to_list(tags.keys())) koji/util.py:1342: in to_list def to_list(lst): /usr/lib64/python3.13/site-packages/coverage/control.py:391: in _should_trace disp = self._inorout.should_trace(filename, frame) /usr/lib64/python3.13/site-packages/coverage/inorout.py:351: in should_trace canonical = canonical_filename(filename) /usr/lib64/python3.13/site-packages/coverage/files.py:85: in canonical_filename cf = abs_file(cf) /usr/lib64/python3.13/site-packages/coverage/files.py:156: in abs_file return actual_path(os.path.abspath(os.path.realpath(path))) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ filename = '/home/mikem/Devel/koji/koji/koji/util.py' > ??? E TypeError: an integer is required <frozen posixpath>:455: TypeError
Commit 407b8ef1 fixes this issue
This issue has been migrated to Fedora Forge: https://forge.fedoraproject.org/koji/koji/issues/4458
Please continue any further discussion there.