Skip to content

Commit 7e97072

Browse files
committed
test: read dependencies from pyproject.toml in test_requirements.py
1 parent 6e5fbc3 commit 7e97072

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

test/test_requirements.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,20 @@
55
import json
66
import re
77
import subprocess
8+
import sys
89
import tempfile
910
from importlib.metadata import version
1011
from pathlib import Path
1112

13+
if sys.version_info >= (3, 11):
14+
import tomllib
15+
else:
16+
import tomli as tomllib
17+
1218
ROOT_PATH = Path(__file__).parent.parent
1319
TEMP_DIR = Path(tempfile.mkdtemp(prefix="requirements_scan-"))
1420

21+
PYPROJECT_TOML = str(ROOT_PATH / "pyproject.toml")
1522
REQ_TXT = str(ROOT_PATH / "requirements.txt")
1623
REQ_CSV = str(ROOT_PATH / "requirements.csv")
1724
TRIAGE_JSON = str(ROOT_PATH / "triage.json")
@@ -48,6 +55,15 @@ def get_packages_from_txt(txt_name: str) -> set[str]:
4855
return txt_package_names
4956

5057

58+
def get_packages_from_pyproject_toml(toml_name: str) -> set[str]:
59+
toml_package_names: set[str] = set()
60+
with open(toml_name, "rb") as toml_file:
61+
toml_data = tomllib.load(toml_file)
62+
for package in toml_data["project"]["dependencies"]:
63+
toml_package_names.add(re.split(">|<|\\[|;|=|\n", package)[0])
64+
return toml_package_names
65+
66+
5167
def get_out_of_sync_packages(
5268
csv_packages: set[str], dependency_packages: set[str]
5369
) -> tuple[set[str], set[str]]:
@@ -61,7 +77,7 @@ def test_txt_csv_sync() -> None:
6177
errors: set[str] = set()
6278

6379
csv_packages = get_packages_from_csv(REQ_CSV)
64-
dependency_packages = get_packages_from_txt(REQ_TXT)
80+
dependency_packages = get_packages_from_pyproject_toml(PYPROJECT_TOML)
6581
req_new_packages, req_removed_packages = get_out_of_sync_packages(
6682
csv_packages, dependency_packages
6783
)

0 commit comments

Comments
 (0)