From f6aada665b0c84cb52ce21e63fdf13836a5f20f6 Mon Sep 17 00:00:00 2001 From: RohitSutar1823 <252551965+RohitSutar1823@users.noreply.github.com> Date: Wed, 4 Nov 2026 06:08:10 +0000 Subject: [PATCH] Fix parsing maintainers with unmatched email brackets Fixes #5402 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: RohitSutar1823 <252551965+RohitSutar1823@users.noreply.github.com> --- src/packagedcode/utils.py | 7 +++---- tests/packagedcode/test_utils.py | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/packagedcode/utils.py b/src/packagedcode/utils.py index 727792b95ed..cc56e6c4bc8 100644 --- a/src/packagedcode/utils.py +++ b/src/packagedcode/utils.py @@ -217,11 +217,10 @@ def parse_maintainer_name_email(maintainer): Debian systemd Maintainers """ email_wrappers = ["<", ">"] - has_email = "@" in maintainer and all([ - True + has_email = "@" in maintainer and all( + char in maintainer for char in email_wrappers - if char in maintainer - ]) + ) if not has_email: return maintainer, None diff --git a/tests/packagedcode/test_utils.py b/tests/packagedcode/test_utils.py index ea291cf14ac..1d1b90d837f 100644 --- a/tests/packagedcode/test_utils.py +++ b/tests/packagedcode/test_utils.py @@ -10,10 +10,29 @@ from unittest import TestCase from packagedcode.utils import normalize_vcs_url +from packagedcode.utils import parse_maintainer_name_email class TestPackageUtils(TestCase): + def test_parse_maintainer_name_email(self): + maintainer = 'Debian systemd Maintainers ' + expected = ( + 'Debian systemd Maintainers', + 'pkg-systemd-maintainers@lists.alioth.debian.org', + ) + assert parse_maintainer_name_email(maintainer) == expected + + def test_parse_maintainer_name_email_without_angle_brackets(self): + maintainer = 'John Doe john@example.com' + expected = ('John Doe john@example.com', None) + assert parse_maintainer_name_email(maintainer) == expected + + def test_parse_maintainer_name_email_with_unmatched_angle_bracket(self): + maintainer = 'John Doe