forked from pallets/click
-
-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
Hi,
While preparing [email protected] for Guix, I've noticed the tests suite fails on 10 tests.
I did not do too deep investigation due to #40
____________ test_file_prompt_default_format[asyncio-file_kwargs0] _____________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4e36210>
file_kwargs = {'mode': 'rt'}
@pytest.mark.parametrize(
"file_kwargs", [{"mode": "rt"}, {"mode": "rb"}, {"lazy": True}]
)
@pytest.mark.anyio
async def test_file_prompt_default_format(runner, file_kwargs):
@click.command()
@click.option("-f", default=__file__, prompt="file", type=click.File(**file_kwargs))
def cli(f):
click.echo(f.name)
result = await runner.invoke(cli, input="\n")
> assert result.output == f"file [{__file__}]: {__file__}\n"
E AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
E
E - file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
E + file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
E + /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
tests/test_termui.py:254: AssertionError
____________ test_file_prompt_default_format[asyncio-file_kwargs1] _____________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4cfe190>
file_kwargs = {'mode': 'rb'}
@pytest.mark.parametrize(
"file_kwargs", [{"mode": "rt"}, {"mode": "rb"}, {"lazy": True}]
)
@pytest.mark.anyio
async def test_file_prompt_default_format(runner, file_kwargs):
@click.command()
@click.option("-f", default=__file__, prompt="file", type=click.File(**file_kwargs))
def cli(f):
click.echo(f.name)
result = await runner.invoke(cli, input="\n")
> assert result.output == f"file [{__file__}]: {__file__}\n"
E AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
E
E - file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
E + file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
E + /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
tests/test_termui.py:254: AssertionError
____________ test_file_prompt_default_format[asyncio-file_kwargs2] _____________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4d81810>
file_kwargs = {'lazy': True}
@pytest.mark.parametrize(
"file_kwargs", [{"mode": "rt"}, {"mode": "rb"}, {"lazy": True}]
)
@pytest.mark.anyio
async def test_file_prompt_default_format(runner, file_kwargs):
@click.command()
@click.option("-f", default=__file__, prompt="file", type=click.File(**file_kwargs))
def cli(f):
click.echo(f.name)
result = await runner.invoke(cli, input="\n")
> assert result.output == f"file [{__file__}]: {__file__}\n"
E AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
E
E - file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
E + file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
E + /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
tests/test_termui.py:254: AssertionError
______________ test_file_prompt_default_format[trio-file_kwargs0] ______________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4e38fd0>
file_kwargs = {'mode': 'rt'}
@pytest.mark.parametrize(
"file_kwargs", [{"mode": "rt"}, {"mode": "rb"}, {"lazy": True}]
)
@pytest.mark.anyio
async def test_file_prompt_default_format(runner, file_kwargs):
@click.command()
@click.option("-f", default=__file__, prompt="file", type=click.File(**file_kwargs))
def cli(f):
click.echo(f.name)
result = await runner.invoke(cli, input="\n")
> assert result.output == f"file [{__file__}]: {__file__}\n"
E AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
E
E - file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
E + file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
E + /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
tests/test_termui.py:254: AssertionError
______________ test_file_prompt_default_format[trio-file_kwargs1] ______________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4cfc0d0>
file_kwargs = {'mode': 'rb'}
@pytest.mark.parametrize(
"file_kwargs", [{"mode": "rt"}, {"mode": "rb"}, {"lazy": True}]
)
@pytest.mark.anyio
async def test_file_prompt_default_format(runner, file_kwargs):
@click.command()
@click.option("-f", default=__file__, prompt="file", type=click.File(**file_kwargs))
def cli(f):
click.echo(f.name)
result = await runner.invoke(cli, input="\n")
> assert result.output == f"file [{__file__}]: {__file__}\n"
E AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
E
E - file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
E + file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
E + /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
tests/test_termui.py:254: AssertionError
______________ test_file_prompt_default_format[trio-file_kwargs2] ______________
runner = <asyncclick.testing.CliRunner object at 0x7ffff5789f10>
file_kwargs = {'lazy': True}
@pytest.mark.parametrize(
"file_kwargs", [{"mode": "rt"}, {"mode": "rb"}, {"lazy": True}]
)
@pytest.mark.anyio
async def test_file_prompt_default_format(runner, file_kwargs):
@click.command()
@click.option("-f", default=__file__, prompt="file", type=click.File(**file_kwargs))
def cli(f):
click.echo(f.name)
result = await runner.invoke(cli, input="\n")
> assert result.output == f"file [{__file__}]: {__file__}\n"
E AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
E
E - file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
E + file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
E + /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
tests/test_termui.py:254: AssertionError
____________________________ test_prompts[asyncio] _____________________________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4e36990>
@pytest.mark.anyio
async def test_prompts(runner):
@click.command()
def test():
if click.confirm("Foo"):
click.echo("yes!")
else:
click.echo("no :(")
result = await runner.invoke(test, input="y\n")
assert not result.exception
> assert result.output == "Foo [y/N]: yes!\n"
E AssertionError: assert 'Foo [y/N]: y\nyes!\n' == 'Foo [y/N]: yes!\n'
E
E - Foo [y/N]: yes!
E ? ---
E + Foo [y/N]: y
E + yes!
tests/test_utils.py:130: AssertionError
_________________________ test_confirm_repeat[asyncio] _________________________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4d06390>
@pytest.mark.anyio
async def test_confirm_repeat(runner):
cli = click.Command(
"cli", params=[click.Option(["--a/--no-a"], default=None, prompt=True)]
)
result = await runner.invoke(cli, input="\ny\n")
> assert result.output == "A [y/n]: Error: invalid input\nA [y/n]: "
E AssertionError: assert 'A [y/n]: \nError: invalid input\nA [y/n]: y\n' == 'A [y/n]: Error: invalid input\nA [y/n]: '
E
E - A [y/n]: Error: invalid input
E - A [y/n]:
E + A [y/n]:
E ? +
E + Error: invalid input
E + A [y/n]: y
tests/test_utils.py:166: AssertionError
______________________________ test_prompts[trio] ______________________________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4ca0ad0>
@pytest.mark.anyio
async def test_prompts(runner):
@click.command()
def test():
if click.confirm("Foo"):
click.echo("yes!")
else:
click.echo("no :(")
result = await runner.invoke(test, input="y\n")
assert not result.exception
> assert result.output == "Foo [y/N]: yes!\n"
E AssertionError: assert 'Foo [y/N]: y\nyes!\n' == 'Foo [y/N]: yes!\n'
E
E - Foo [y/N]: yes!
E ? ---
E + Foo [y/N]: y
E + yes!
tests/test_utils.py:130: AssertionError
__________________________ test_confirm_repeat[trio] ___________________________
runner = <asyncclick.testing.CliRunner object at 0x7ffff4ce6310>
@pytest.mark.anyio
async def test_confirm_repeat(runner):
cli = click.Command(
"cli", params=[click.Option(["--a/--no-a"], default=None, prompt=True)]
)
result = await runner.invoke(cli, input="\ny\n")
> assert result.output == "A [y/n]: Error: invalid input\nA [y/n]: "
E AssertionError: assert 'A [y/n]: \nError: invalid input\nA [y/n]: y\n' == 'A [y/n]: Error: invalid input\nA [y/n]: '
E
E - A [y/n]: Error: invalid input
E - A [y/n]:
E + A [y/n]:
E ? +
E + Error: invalid input
E + A [y/n]: y
tests/test_utils.py:166: AssertionError
=========================== short test summary info ============================
FAILED tests/test_termui.py::test_file_prompt_default_format[asyncio-file_kwargs0] - AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
- file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
+ file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
+ /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
FAILED tests/test_termui.py::test_file_prompt_default_format[asyncio-file_kwargs1] - AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
- file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
+ file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
+ /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
FAILED tests/test_termui.py::test_file_prompt_default_format[asyncio-file_kwargs2] - AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
- file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
+ file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
+ /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
FAILED tests/test_termui.py::test_file_prompt_default_format[trio-file_kwargs0] - AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
- file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
+ file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
+ /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
FAILED tests/test_termui.py::test_file_prompt_default_format[trio-file_kwargs1] - AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
- file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
+ file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
+ /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
FAILED tests/test_termui.py::test_file_prompt_default_format[trio-file_kwargs2] - AssertionError: assert 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: \n/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n' == 'file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py\n'
- file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]: /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
+ file [/tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py]:
+ /tmp/guix-build-python-asyncclick-8.2.2.2.drv-0/asyncclick-8.2.2.2/tests/test_termui.py
FAILED tests/test_utils.py::test_prompts[asyncio] - AssertionError: assert 'Foo [y/N]: y\nyes!\n' == 'Foo [y/N]: yes!\n'
- Foo [y/N]: yes!
? ---
+ Foo [y/N]: y
+ yes!
FAILED tests/test_utils.py::test_confirm_repeat[asyncio] - AssertionError: assert 'A [y/n]: \nError: invalid input\nA [y/n]: y\n' == 'A [y/n]: Error: invalid input\nA [y/n]: '
- A [y/n]: Error: invalid input
- A [y/n]:
+ A [y/n]:
? +
+ Error: invalid input
+ A [y/n]: y
FAILED tests/test_utils.py::test_prompts[trio] - AssertionError: assert 'Foo [y/N]: y\nyes!\n' == 'Foo [y/N]: yes!\n'
- Foo [y/N]: yes!
? ---
+ Foo [y/N]: y
+ yes!
FAILED tests/test_utils.py::test_confirm_repeat[trio] - AssertionError: assert 'A [y/n]: \nError: invalid input\nA [y/n]: y\n' == 'A [y/n]: Error: invalid input\nA [y/n]: '
- A [y/n]: Error: invalid input
- A [y/n]:
+ A [y/n]:
? +
+ Error: invalid input
+ A [y/n]: y
============ 10 failed, 1459 passed, 29 skipped, 4 xfailed in 3.33s ============
Ignoring them let me finish tests successfully:
"-k" (string-join
;; See: <https://github.com/python-trio/asyncclick/issues/42>.
(list "not test_confirm_repeat[asyncio]"
"test_confirm_repeat[trio]"
"test_file_prompt_default_format[asyncio-file_kwargs0]"
"test_file_prompt_default_format[asyncio-file_kwargs1]"
"test_file_prompt_default_format[asyncio-file_kwargs2]"
"test_file_prompt_default_format[trio-file_kwargs0]"
"test_file_prompt_default_format[trio-file_kwargs1]"
"test_file_prompt_default_format[trio-file_kwargs2]"
"test_prompts[asyncio]"
"test_prompts[trio]")
" and not "))
Python 3.11.11
Inputs:
Metadata
Metadata
Assignees
Labels
No labels