diff --git a/src/poetry/core/packages/dependency_group.py b/src/poetry/core/packages/dependency_group.py index 679e9d387..c808958bd 100644 --- a/src/poetry/core/packages/dependency_group.py +++ b/src/poetry/core/packages/dependency_group.py @@ -169,8 +169,9 @@ def __eq__(self, other: object) -> bool: return ( self._name == other.name - and set(self._dependencies) == set(other.dependencies) + and set(self._dependencies) == set(other._dependencies) and set(self._poetry_dependencies) == set(other._poetry_dependencies) + and self._included_dependency_groups == other._included_dependency_groups ) def __repr__(self) -> str: diff --git a/tests/packages/test_dependency_group.py b/tests/packages/test_dependency_group.py index 88d779136..e6c3da776 100644 --- a/tests/packages/test_dependency_group.py +++ b/tests/packages/test_dependency_group.py @@ -644,3 +644,17 @@ def test_include_dependency_group_raise_if_already_included(group_name: str) -> ValueError, match=f"Dependency group {group_name} is already included" ): group.include_dependency_group(group_3) + + +def test_dependency_group_inequality() -> None: + a = DependencyGroup(name="test") + a.add_dependency(Dependency(name="dep1", constraint="*")) + + b = DependencyGroup(name="test") + b.add_dependency(Dependency(name="dep1", constraint="*")) + extras = DependencyGroup(name="extras") + extras.add_dependency(Dependency(name="dep2", constraint="*")) + b.include_dependency_group(extras) + + assert a != b + assert b != a