========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= test session starts ==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
platform linux -- Python 3.10.12, pytest-9.0.3, pluggy-1.6.0 -- /usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.10.12', 'Platform': 'Linux-6.8.0-1025-gke-x86_64-with-glibc2.35', 'Packages': {'pytest': '9.0.3', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.13.0', 'mock': '3.15.1', 'metadata': '3.1.1', 'json-report': '1.5.0', 'cov': '7.1.0'}}
rootdir: /workspace/cookiecutter
configfile: setup.cfg
plugins: anyio-4.13.0, mock-3.15.1, metadata-3.1.1, json-report-1.5.0, cov-7.1.0
collected 21 items

tests/zipfile/test_unzip.py::test_unzip_local_file PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [  4%]
tests/zipfile/test_unzip.py::test_unzip_protected_local_file_environment_password PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         [  9%]
tests/zipfile/test_unzip.py::test_unzip_protected_local_file_bad_environment_password PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [ 14%]
tests/zipfile/test_unzip.py::test_unzip_protected_local_file_user_password_with_noinput PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   [ 19%]
tests/zipfile/test_unzip.py::test_unzip_protected_local_file_user_password PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [ 23%]
tests/zipfile/test_unzip.py::test_unzip_protected_local_file_user_bad_password PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [ 28%]
tests/zipfile/test_unzip.py::test_empty_zip_file PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          [ 33%]
tests/zipfile/test_unzip.py::test_non_repo_zip_file PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       [ 38%]
tests/zipfile/test_unzip.py::test_bad_zip_file PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [ 42%]
tests/zipfile/test_unzip.py::test_unzip_url PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [ 47%]
tests/zipfile/test_unzip.py::test_unzip_url_with_empty_chunks PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [ 52%]
tests/zipfile/test_unzip.py::test_unzip_url_existing_cache PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [ 57%]
tests/zipfile/test_unzip.py::test_unzip_url_existing_cache_no_input PASSED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       [ 61%]
tests/zipfile/test_unzip.py::test_unzip_should_abort_if_no_redownload PASSED                                                                                                                                                                                                                                                                                                                                                                 <response clipped><NOTE>Due to the max output limit, only part of the full response has been shown to you.</NOTE> Name',
                    'check': ['yes', 'no'],
                    '__prompts__': {
                        'full_name': 'Name please',
                        'check': {'__prompt__': 'Checking', 'yes': 'Yes', 'no': 'No'},
                    },
                }
            },
            {
                'cookiecutter': {
                    'full_name': 'Your Name',
                    'check': ['yes', 'no'],
                    '__prompts__': {
                        'full_name': 'Name please',
                        'check': {'no': 'No'},
                    },
                }
            },
        ],
    )
    def test_prompt_for_config_with_human_choices(self, monkeypatch, context):
        """Test prompts when human-readable labels for user choices."""
>       runner = click.testing.CliRunner()

tests/test_prompt.py:166:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

name = 'testing'

    def __getattr__(name: str) -> object:
        import warnings

        if name == "BaseCommand":
            from .core import _BaseCommand

            warnings.warn(
                "'BaseCommand' is deprecated and will be removed in Click 9.0. Use"
                " 'Command' instead.",
                DeprecationWarning,
                stacklevel=2,
            )
            return _BaseCommand

        if name == "MultiCommand":
            from .core import _MultiCommand

            warnings.warn(
                "'MultiCommand' is deprecated and will be removed in Click 9.0. Use"
                " 'Group' instead.",
                DeprecationWarning,
                stacklevel=2,
            )
            return _MultiCommand

        if name == "OptionParser":
            from .parser import _OptionParser

            warnings.warn(
                "'OptionParser' is deprecated and will be removed in Click 9.0. The"
                " old parser is available in 'optparse'.",
                DeprecationWarning,
                stacklevel=2,
            )
            return _OptionParser

        if name == "__version__":
            import importlib.metadata
            import warnings

            warnings.warn(
                "The '__version__' attribute is deprecated and will be removed in"
                " Click 9.1. Use feature detection or"
                " 'importlib.metadata.version(\"click\")' instead.",
                DeprecationWarning,
                stacklevel=2,
            )
            return importlib.metadata.version("click")

>       raise AttributeError(name)
E       AttributeError: testing

/home/openhands/.local/lib/python3.10/site-packages/click/__init__.py:124: AttributeError
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ test_should_invoke_main ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x767aeadd4790>, project_dir = 'fake-project-templated'

    @pytest.mark.usefixtures('clean_system')
    def test_should_invoke_main(monkeypatch, project_dir):
        """Should create a project and exit with 0 code on cli invocation."""
        monkeypatch.setenv('PYTHONPATH', '.')

>       exit_code = subprocess.check_call(
            [sys.executable, '-m', 'cookiecutter.cli', 'tests/fake-repo-tmpl', '--no-input']
        )

tests/test_cookiecutter_invocation.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

popenargs = (['/usr/bin/python3', '-m', 'cookiecutter.cli', 'tests/fake-repo-tmpl', '--no-input'],), kwargs = {}, retcode = 1, cmd = ['/usr/bin/python3', '-m', 'cookiecutter.cli', 'tests/fake-repo-tmpl', '--no-input']

    def check_call(*popenargs, **kwargs):
        """Run command with arguments.  Wait for command to complete.  If
        the exit code was zero then return, otherwise raise
        CalledProcessError.  The CalledProcessError object will have the
        return code in the returncode attribute.

        The arguments are the same as for the call function.  Example:

        check_call(["ls", "-l"])
        """
        retcode = call(*popenargs, **kwargs)
        if retcode:
            cmd = kwargs.get("args")
            if cmd is None:
                cmd = popenargs[0]
>           raise CalledProcessError(retcode, cmd)
E           subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'cookiecutter.cli', 'tests/fake-repo-tmpl', '--no-input']' returned non-zero exit status 1.

/usr/lib/python3.10/subprocess.py:369: CalledProcessError
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/workspace/cookiecutter/cookiecutter/cli.py", line 6, in <module>
    import click
ModuleNotFoundError: No module named 'click'
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ tests coverage ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ coverage: platform linux, python 3.10.12-final-0 ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Name                          Stmts   Miss  Cover   Missing
-----------------------------------------------------------
cookiecutter/__init__.py          6      0   100%
cookiecutter/__main__.py          1      1     0%   3
cookiecutter/cli.py              75     75     0%   2-127
cookiecutter/config.py           48     23    52%   23-30, 34-50, 72, 74, 78, 80
cookiecutter/environment.py      16      2    88%   26-27
cookiecutter/exceptions.py       23      0   100%
cookiecutter/extensions.py       65     30    54%   19, 30-34, 46, 58, 72-81, 85-100
cookiecutter/find.py             17      1    94%   23
cookiecutter/generate.py        186     91    51%   33-41, 46-68, 84-85, 91-94, 96, 123-124, 129, 132, 136-138, 142, 152-162, 169-170, 178-190, 202-207, 237-238, 244, 263-285, 295-296, 300-305, 315-323
cookiecutter/hooks.py            75     46    39%   24-25, 41-45, 53-67, 76-89, 102-103, 118-121, 128-136
cookiecutter/log.py              19     19     0%   2-28
cookiecutter/main.py             65     12    82%   51, 75-76, 87-91, 105-109
cookiecutter/prompt.py          160     92    42%   19-23, 32-37, 53-54, 61, 72-85, 93-101, 111, 120-123, 143, 145, 150, 152, 160-163, 171-174, 181-184, 200, 205-206, 212, 216, 218, 230, 241-259, 274, 278-281, 284-288
cookiecutter/replay.py           28     12    57%   13, 21, 23, 25, 34-42
cookiecutter/repository.py       42     13    69%   31, 33, 80, 82-96, 102
cookiecutter/utils.py            47     15    68%   20-21, 37-38, 59-60, 64-68, 72-75
cookiecutter/vcs.py              53     39    26%   22-37, 45, 58-100
cookiecutter/zipfile.py          50      0   100%
-----------------------------------------------------------
TOTAL                           976    471    52%
======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= short test summary info ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
FAILED tests/test_prompt.py::TestPrompt::test_prompt_for_config_with_human_choices[context0] - AttributeError: testing
FAILED tests/test_prompt.py::TestPrompt::test_prompt_for_config_with_human_choices[context1] - AttributeError: testing
FAILED tests/test_prompt.py::TestPrompt::test_prompt_for_config_with_human_choices[context2] - AttributeError: testing
FAILED tests/test_cookiecutter_invocation.py::test_should_invoke_main - subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'cookiecutter.cli', 'tests/fake-repo-tmpl', '--no-input']' returned non-zero exit status 1.
===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== 4 failed, 17 passed in 0.60s =====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
[The command completed with exit code 1.]
[Current working directory: /workspace/cookiecutter]
[Python interpreter: /usr/bin/python]
[Command finished with exit code 1]