Expected Result
@click.argument('infile', type=click.File('r')) has attribute name in all invokation scenarios
Actual result
@click.argument('infile', type=click.File('r')) doesn't have attribute name when using click.testing.CliRunner.invoke()
Steps to reproduce
@click.command()
@click.argument('infile', type=click.File('r'))
def test(infile):
print(infile)
print(infile.name)
test()
run as
returns
<_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>
<stdin>
whereas
@click.command()
@click.argument('infile', type=click.File('r'))
def test(infile):
print(infile)
print(infile.name) # Raises AttributeError
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(test, ['-'], input="")
print(result.output)
print(result)
returns
<_io.TextIOWrapper encoding='utf-8'>
<Result AttributeError("'_io.BytesIO' object has no attribute 'name'",)>
Expected Result
@click.argument('infile', type=click.File('r'))has attributenamein all invokation scenariosActual result
@click.argument('infile', type=click.File('r'))doesn't have attributenamewhen usingclick.testing.CliRunner.invoke()Steps to reproduce
run as
returns
whereas
returns