diff --git a/src/packagedcode/utils.py b/src/packagedcode/utils.py index 727792b95e..cc56e6c4bc 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 ea291cf14a..1d1b90d837 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