Skip to content

Commit a079154

Browse files
authored
Merge pull request #108 from abompard/license-expression
Accept `License-Expression` in metadata (PEP 639)
2 parents be61e11 + f1805b6 commit a079154

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

liccheck/command_line.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ class Reason(enum.Enum):
138138

139139

140140
def get_packages_info(requirement_file, no_deps=False):
141-
regex_license = re.compile(r"License: (?P<license>.*)?$", re.M)
141+
regex_license = re.compile(r"License(?:-Expression)?: (?P<license>.*)?$", re.M)
142142
regex_classifier = re.compile(
143143
r"Classifier: License(?: :: OSI Approved)?(?: :: (?P<classifier>.*))?$", re.M
144144
)

tests/test_get_packages_info.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,21 @@ def test_deps(tmpfile, no_deps, expected_packages):
7373
packages_info = get_packages_info(tmppath, no_deps)
7474
packages = tuple(package['name'] for package in packages_info)
7575
assert packages == expected_packages
76+
77+
78+
def test_license_expression(tmp_path, mocker):
79+
resolve = mocker.patch("liccheck.command_line.resolve")
80+
req_path = tmp_path.joinpath("requirements.txt").as_posix()
81+
with open(req_path, "w") as tmpfh:
82+
tmpfh.write("Twisted\n")
83+
pkg_info_path = tmp_path.joinpath("PKG-INFO").as_posix()
84+
with open(pkg_info_path, "w") as tmpfh:
85+
tmpfh.write("Metadata-Version: 2.1\n")
86+
tmpfh.write("Name: Twisted\n")
87+
tmpfh.write("Version: 23.8.0\n")
88+
tmpfh.write("License-Expression: MIT\n")
89+
metadata = pkg_resources.FileMetadata(pkg_info_path)
90+
resolve.return_value = [
91+
pkg_resources.Distribution(project_name="Twisted", metadata=metadata)
92+
]
93+
assert get_packages_info(req_path)[0]["licenses"] == ["MIT"]

0 commit comments

Comments
 (0)