AI-generated possible solution for #10703 (A) #10924
Open
Cirrus CI / Tests / FreeBSD (Python 3.11) / pytest
failed
May 26, 2026 in 4m 26s
Task Summary
Instruction pytest failed in 02:14
Details
✅ 00:04 clone
✅ 01:20 bootstrap_poetry
✅ 00:44 setup_environment
❌ 02:14 pytest
foobar3.include_dependency_group(app.poetry.package.dependency_group("bar"))
foobar3.include_dependency_group(app.poetry.package.dependency_group("foobar2"))
app.poetry.package.add_dependency_group(foobar3)
# Remove all packages from the "bar" group, which should delete the group
# and also clean up references to it in "foobar"
tester.execute(f"foo{args}")
pyproject = app.poetry.file.read()
pyproject = cast("dict[str, Any]", pyproject)
content = pyproject["tool"]["poetry"]
if pep_735:
# "bar" group should be removed
assert "bar" not in pyproject.get("dependency-groups", {})
# "foobar" group should also be removed since it only had include-group
assert "foobar" not in pyproject.get("dependency-groups", {})
# "foobar2" should have its include-group cleaned up
assert "foobar2" in pyproject.get("dependency-groups", {})
assert pyproject["dependency-groups"]["foobar2"] == [
"baz (>=1.0)",
"baz (<=3.0)",
]
# "foobar3" should have its include-groups cleaned up
assert "foobar3" in pyproject.get("dependency-groups", {})
assert pyproject["dependency-groups"]["foobar3"] == [
{"include-group": "foobar2"}
]
else:
# "bar" group should be removed
assert "bar" not in content.get("group", {})
# "foobar" group should also be removed since it only had include-group
> assert "foobar" not in content.get("group", {})
E AssertionError: assert 'foobar' not in {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}}
E + where {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}} = get('group', {})
E + where get = {'classifiers': ['Topic :: Software Development :: Build Tools', 'Topic :: Software Development :: Libraries :: Python Modules'], 'dependencies': {'python': '~2.7 || ^3.4'}, 'group': {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}}}.get
/tmp/cirrus-ci-build/tests/console/commands/test_remove.py:899: AssertionError
-------------- generated xml file: /tmp/cirrus-ci-build/junit.xml --------------
=========================== short test summary info ============================
SKIPPED [1] tests/console/commands/test_run.py:158: Poetry only installs CMD script files for console scripts of editable dependencies on Windows
SKIPPED [3] tests/console/commands/env/test_activate.py:54: Only Windows shells
SKIPPED [1] tests/integration/test_utils_vcs_git.py:324: HTTP authentication credentials not available
SKIPPED [1] tests/utils/env/test_env_manager.py:1269: requires darwin
SKIPPED [1] tests/utils/test_python_manager.py:104: Windows only
SKIPPED [1] tests/installation/test_executor.py:506: https://github.com/python-poetry/poetry/issues/7983
SKIPPED [1] tests/console/commands/self/test_sync.py:26: Only relevant for `poetry self install`
SKIPPED [1] tests/console/commands/test_sync.py:26: Only relevant for `poetry install`
FAILED tests/console/commands/test_remove.py::test_remove_group_cleans_up_include_group_references[-True] - AssertionError: assert 'foobar' not in {'foobar': [{'include-group': 'bar'}], 'foobar2': ['baz (>=1.0)', {'include-group': 'bar'}, 'baz (<=3.0)'], 'foobar3': [{'include-group': 'bar'}, {'include-group': 'foobar2'}]}
+ where {'foobar': [{'include-group': 'bar'}], 'foobar2': ['baz (>=1.0)', {'include-group': 'bar'}, 'baz (<=3.0)'], 'foobar3': [{'include-group': 'bar'}, {'include-group': 'foobar2'}]} = get('dependency-groups', {})
+ where get = {'project': {'name': 'simple-project', 'version': '1.2.3', 'description': 'Some description.', 'authors': [{'name': 'Sébastien Eustace', 'email': 'sebastien@eustace.io'}], 'license': 'MIT', 'readme': 'README.rst', 'keywords': ['packaging', 'dependency', 'poetry'], 'dynamic': ['classifiers', 'dependencies', 'requires-python'], 'urls': {'homepage': 'https://python-poetry.org', 'repository': 'https://github.com/python-poetry/poetry', 'documentation': 'https://python-poetry.org/docs'}, 'scripts': {'foo': 'foo:bar', 'baz': 'bar:baz.boom.bim', 'fox': 'fuz.foo:bar.baz'}}, 'tool': {'poetry': {'classifiers': ['Topic :: Software Development :: Build Tools', 'Topic :: Software Development :: Libraries :: Python Modules'], 'dependencies': {'python': '~2.7 || ^3.4'}}}, 'build-system': {'requires': ['poetry-core>=1.1.0a7'], 'build-backend': 'poetry.core.masonry.api'}, 'dependency-groups': {'foobar': [{'include-group': 'bar'}], 'foobar2': ['baz (>=1.0)', {'include-group': 'bar'}, 'baz (<=3.0)'], 'foobar3': [{'include-group': 'bar'}, {'include-group': 'foobar2'}]}}.get
FAILED tests/console/commands/test_remove.py::test_remove_group_cleans_up_include_group_references[-False] - AssertionError: assert 'foobar' not in {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}}
+ where {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}} = get('group', {})
+ where get = {'classifiers': ['Topic :: Software Development :: Build Tools', 'Topic :: Software Development :: Libraries :: Python Modules'], 'dependencies': {'python': '~2.7 || ^3.4'}, 'group': {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}}}.get
============ 2 failed, 2931 passed, 10 skipped in 131.32s (0:02:11) ============
��Annotations
Check failure on line 883 in tests/console/commands/test_remove.py
cirrus-ci / Tests / FreeBSD (Python 3.11) / pytest
tests/console/commands/test_remove.py#L883
tests.console.commands.test_remove.test_remove_group_cleans_up_include_group_references[-True]
Raw output
pep_735 = True, args = ''
tester = <cleo.testers.command_tester.CommandTester object at 0x1dddf61ac550>
app = <tests.helpers.PoetryTestApplication object at 0x1dddf7046790>
repo = <tests.helpers.TestRepository object at 0x1dddf6d7e950>
installed = <poetry.repositories.installed_repository.InstalledRepository object at 0x1dddf529cb90>
@pytest.mark.parametrize("pep_735", [True, False])
@pytest.mark.parametrize("args", ["", " --group bar"])
def test_remove_group_cleans_up_include_group_references(
pep_735: bool,
args: str,
tester: CommandTester,
app: PoetryTestApplication,
repo: TestRepository,
installed: Repository,
) -> None:
"""
When a group is removed, any `include-group` references to it in other
groups should also be cleaned up.
"""
installed.add_package(Package("foo", "2.0.0"))
installed.add_package(Package("baz", "1.0.0"))
repo.add_package(Package("foo", "2.0.0"))
repo.add_package(Package("baz", "1.0.0"))
pyproject: dict[str, Any] = app.poetry.file.read()
if pep_735:
groups_content: dict[str, Any] = tomlkit.parse(
"""\
[dependency-groups]
bar = [
"foo (>=2.0,<3.0)",
]
foobar = [
{ include-group = "bar" },
]
foobar2 = [
"baz (>=1.0)",
{ include-group = "bar" },
"baz (<=3.0)",
]
foobar3 = [
{ include-group = "bar" },
{ include-group = "foobar2" },
]
"""
)
pyproject["dependency-groups"] = groups_content["dependency-groups"]
else:
groups_content = tomlkit.parse(
"""\
[tool.poetry.group.bar.dependencies]
foo = "^2.0.0"
[tool.poetry.group.foobar]
include-groups = [
"bar",
]
[tool.poetry.group.foobar2]
include-groups = [
"bar",
]
[tool.poetry.group.foobar2.dependencies]
baz = "(>=1.0,<=3.0)"
[tool.poetry.group.foobar3]
include-groups = [
"bar",
"foobar2",
]
"""
)
groups_content = cast("dict[str, Any]", groups_content)
pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"]
pyproject = cast("TOMLDocument", pyproject)
app.poetry.file.write(pyproject)
app.poetry.package.add_dependency(
Factory.create_dependency("foo", "^2.0.0", groups=["bar"])
)
app.poetry.package.add_dependency(
Factory.create_dependency("baz", "^1.0.0", groups=["foobar2"])
)
foobar = DependencyGroup("foobar")
foobar.include_dependency_group(app.poetry.package.dependency_group("bar"))
app.poetry.package.add_dependency_group(foobar)
foobar2 = DependencyGroup("foobar2")
foobar2.include_dependency_group(app.poetry.package.dependency_group("bar"))
app.poetry.package.add_dependency_group(foobar2)
foobar3 = DependencyGroup("foobar3")
foobar3.include_dependency_group(app.poetry.package.dependency_group("bar"))
foobar3.include_dependency_group(app.poetry.package.dependency_group("foobar2"))
app.poetry.package.add_dependency_group(foobar3)
# Remove all packages from the "bar" group, which should delete the group
# and also clean up references to it in "foobar"
tester.execute(f"foo{args}")
pyproject = app.poetry.file.read()
pyproject = cast("dict[str, Any]", pyproject)
content = pyproject["tool"]["poetry"]
if pep_735:
# "bar" group should be removed
assert "bar" not in pyproject.get("dependency-groups", {})
# "foobar" group should also be removed since it only had include-group
> assert "foobar" not in pyproject.get("dependency-groups", {})
E AssertionError: assert 'foobar' not in {'foobar': [{'include-group': 'bar'}], 'foobar2': ['baz (>=1.0)', {'include-group': 'bar'}, 'baz (<=3.0)'], 'foobar3': [{'include-group': 'bar'}, {'include-group': 'foobar2'}]}
E + where {'foobar': [{'include-group': 'bar'}], 'foobar2': ['baz (>=1.0)', {'include-group': 'bar'}, 'baz (<=3.0)'], 'foobar3': [{'include-group': 'bar'}, {'include-group': 'foobar2'}]} = get('dependency-groups', {})
E + where get = {'project': {'name': 'simple-project', 'version': '1.2.3', 'description': 'Some description.', 'authors': [{'name': 'Sébastien Eustace', 'email': 'sebastien@eustace.io'}], 'license': 'MIT', 'readme': 'README.rst', 'keywords': ['packaging', 'dependency', 'poetry'], 'dynamic': ['classifiers', 'dependencies', 'requires-python'], 'urls': {'homepage': 'https://python-poetry.org', 'repository': 'https://github.com/python-poetry/poetry', 'documentation': 'https://python-poetry.org/docs'}, 'scripts': {'foo': 'foo:bar', 'baz': 'bar:baz.boom.bim', 'fox': 'fuz.foo:bar.baz'}}, 'tool': {'poetry': {'classifiers': ['Topic :: Software Development :: Build Tools', 'Topic :: Software Development :: Libraries :: Python Modules'], 'dependencies': {'python': '~2.7 || ^3.4'}}}, 'build-system': {'requires': ['poetry-core>=1.1.0a7'], 'build-backend': 'poetry.core.masonry.api'}, 'dependency-groups': {'foobar': [{'include-group': 'bar'}], 'foobar2': ['baz (>=1.0)', {'include-group': 'bar'}, 'baz (<=3.0)'], 'foobar3': [{'include-group': 'bar'}, {'include-group': 'foobar2'}]}}.get
/tmp/cirrus-ci-build/tests/console/commands/test_remove.py:883: AssertionError
Check failure on line 899 in tests/console/commands/test_remove.py
cirrus-ci / Tests / FreeBSD (Python 3.11) / pytest
tests/console/commands/test_remove.py#L899
tests.console.commands.test_remove.test_remove_group_cleans_up_include_group_references[-False]
Raw output
pep_735 = False, args = ''
tester = <cleo.testers.command_tester.CommandTester object at 0x1dddf4791590>
app = <tests.helpers.PoetryTestApplication object at 0x1dddf521cc90>
repo = <tests.helpers.TestRepository object at 0x1dddf6cab410>
installed = <poetry.repositories.installed_repository.InstalledRepository object at 0x1dddf6c90a10>
@pytest.mark.parametrize("pep_735", [True, False])
@pytest.mark.parametrize("args", ["", " --group bar"])
def test_remove_group_cleans_up_include_group_references(
pep_735: bool,
args: str,
tester: CommandTester,
app: PoetryTestApplication,
repo: TestRepository,
installed: Repository,
) -> None:
"""
When a group is removed, any `include-group` references to it in other
groups should also be cleaned up.
"""
installed.add_package(Package("foo", "2.0.0"))
installed.add_package(Package("baz", "1.0.0"))
repo.add_package(Package("foo", "2.0.0"))
repo.add_package(Package("baz", "1.0.0"))
pyproject: dict[str, Any] = app.poetry.file.read()
if pep_735:
groups_content: dict[str, Any] = tomlkit.parse(
"""\
[dependency-groups]
bar = [
"foo (>=2.0,<3.0)",
]
foobar = [
{ include-group = "bar" },
]
foobar2 = [
"baz (>=1.0)",
{ include-group = "bar" },
"baz (<=3.0)",
]
foobar3 = [
{ include-group = "bar" },
{ include-group = "foobar2" },
]
"""
)
pyproject["dependency-groups"] = groups_content["dependency-groups"]
else:
groups_content = tomlkit.parse(
"""\
[tool.poetry.group.bar.dependencies]
foo = "^2.0.0"
[tool.poetry.group.foobar]
include-groups = [
"bar",
]
[tool.poetry.group.foobar2]
include-groups = [
"bar",
]
[tool.poetry.group.foobar2.dependencies]
baz = "(>=1.0,<=3.0)"
[tool.poetry.group.foobar3]
include-groups = [
"bar",
"foobar2",
]
"""
)
groups_content = cast("dict[str, Any]", groups_content)
pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"]
pyproject = cast("TOMLDocument", pyproject)
app.poetry.file.write(pyproject)
app.poetry.package.add_dependency(
Factory.create_dependency("foo", "^2.0.0", groups=["bar"])
)
app.poetry.package.add_dependency(
Factory.create_dependency("baz", "^1.0.0", groups=["foobar2"])
)
foobar = DependencyGroup("foobar")
foobar.include_dependency_group(app.poetry.package.dependency_group("bar"))
app.poetry.package.add_dependency_group(foobar)
foobar2 = DependencyGroup("foobar2")
foobar2.include_dependency_group(app.poetry.package.dependency_group("bar"))
app.poetry.package.add_dependency_group(foobar2)
foobar3 = DependencyGroup("foobar3")
foobar3.include_dependency_group(app.poetry.package.dependency_group("bar"))
foobar3.include_dependency_group(app.poetry.package.dependency_group("foobar2"))
app.poetry.package.add_dependency_group(foobar3)
# Remove all packages from the "bar" group, which should delete the group
# and also clean up references to it in "foobar"
tester.execute(f"foo{args}")
pyproject = app.poetry.file.read()
pyproject = cast("dict[str, Any]", pyproject)
content = pyproject["tool"]["poetry"]
if pep_735:
# "bar" group should be removed
assert "bar" not in pyproject.get("dependency-groups", {})
# "foobar" group should also be removed since it only had include-group
assert "foobar" not in pyproject.get("dependency-groups", {})
# "foobar2" should have its include-group cleaned up
assert "foobar2" in pyproject.get("dependency-groups", {})
assert pyproject["dependency-groups"]["foobar2"] == [
"baz (>=1.0)",
"baz (<=3.0)",
]
# "foobar3" should have its include-groups cleaned up
assert "foobar3" in pyproject.get("dependency-groups", {})
assert pyproject["dependency-groups"]["foobar3"] == [
{"include-group": "foobar2"}
]
else:
# "bar" group should be removed
assert "bar" not in content.get("group", {})
# "foobar" group should also be removed since it only had include-group
> assert "foobar" not in content.get("group", {})
E AssertionError: assert 'foobar' not in {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}}
E + where {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}} = get('group', {})
E + where get = {'classifiers': ['Topic :: Software Development :: Build Tools', 'Topic :: Software Development :: Libraries :: Python Modules'], 'dependencies': {'python': '~2.7 || ^3.4'}, 'group': {'foobar': {'include-groups': ['bar']}, 'foobar2': {'include-groups': ['bar'], 'dependencies': {'baz': '(>=1.0,<=3.0)'}}, 'foobar3': {'include-groups': ['bar', 'foobar2']}}}.get
/tmp/cirrus-ci-build/tests/console/commands/test_remove.py:899: AssertionError
Loading