Skip to content

AI-generated possible solution for #10703

d5c33e7
Select commit
Loading
Failed to load commit list.
Open

AI-generated possible solution for #10703 (A) #10924

AI-generated possible solution for #10703
d5c33e7
Select commit
Loading
Failed to load commit list.
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

See this annotation in the file changed.

@cirrus-ci 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

See this annotation in the file changed.

@cirrus-ci 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