diff --git a/action_setup_python_poetry/invalid_package_versions.py b/action_setup_python_poetry/invalid_package_versions.py index d43393c..b5615c9 100644 --- a/action_setup_python_poetry/invalid_package_versions.py +++ b/action_setup_python_poetry/invalid_package_versions.py @@ -20,7 +20,7 @@ def get_invalid_package_versions(pyproject_toml_file_text: str) -> Sequence[tupl (package, version_str) for package, version in ( *poetry_data["dependencies"].items(), - *poetry_data["dev-dependencies"].items(), + *poetry_data.get("dev-dependencies", {}).items(), *itertools.chain.from_iterable( (group["dependencies"].items() for _, group in poetry_data.get("group", {}).items()), ), diff --git a/action_setup_python_poetry/tests/data/pyproject_mock_no_dev_dependencies.toml b/action_setup_python_poetry/tests/data/pyproject_mock_no_dev_dependencies.toml new file mode 100644 index 0000000..4af3ddd --- /dev/null +++ b/action_setup_python_poetry/tests/data/pyproject_mock_no_dev_dependencies.toml @@ -0,0 +1,21 @@ +[tool.poetry] +name = "test-project" +version = "0.1.0" +description = "Testing only" +authors = ["moneymeets GmbH "] + +[tool.poetry.scripts] +merge_checks_runner = 'invalid_package_versions.runner:run' + +[tool.poetry.dependencies] +python = "~3.12" + +[tool.poetry.group.test-group-1.dependencies] +test-package-1 = "*" + +[tool.poetry.group.test-group-2.dependencies] +test-package-2 = "*" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/action_setup_python_poetry/tests/test_get_invalid_package_versions.py b/action_setup_python_poetry/tests/test_get_invalid_package_versions.py index d100341..6d79b36 100644 --- a/action_setup_python_poetry/tests/test_get_invalid_package_versions.py +++ b/action_setup_python_poetry/tests/test_get_invalid_package_versions.py @@ -7,13 +7,12 @@ class GetInvalidPackageVersionsTest(TestCase): - valid_pyproject_toml = (TEST_DATA_DIR / "pyproject_mock_valid.toml").read_text() - invalid_pyproject_toml = (TEST_DATA_DIR / "pyproject_mock_invalid.toml").read_text() - def test_get_invalid_package_versions_success(self): - self.assertEqual((), get_invalid_package_versions(self.valid_pyproject_toml)) + valid_pyproject_toml = (TEST_DATA_DIR / "pyproject_mock_valid.toml").read_text() + self.assertEqual((), get_invalid_package_versions(valid_pyproject_toml)) def test_get_invalid_package_versions_failed(self): + invalid_pyproject_toml = (TEST_DATA_DIR / "pyproject_mock_invalid.toml").read_text() self.assertEqual( ( ("python", ">=3.12"), @@ -21,5 +20,9 @@ def test_get_invalid_package_versions_failed(self): ("test-package-1", ">=1"), ("test-package-2", ">=1"), ), - get_invalid_package_versions(self.invalid_pyproject_toml), + get_invalid_package_versions(invalid_pyproject_toml), ) + + def test_no_dev_dependencies(self): + no_dev_dependencies_pyproject_toml = (TEST_DATA_DIR / "pyproject_mock_no_dev_dependencies.toml").read_text() + self.assertEqual((), get_invalid_package_versions(no_dev_dependencies_pyproject_toml))