cvut / NI-PYT

Materiály k předmětu NI-PYT na FIT ČVUT
https://courses.fit.cvut.cz/NI-PYT/
Creative Commons Attribution Share Alike 4.0 International
112 stars 28 forks source link

Testování výstupu click.echo #117

Closed vanclmil closed 6 years ago

vanclmil commented 6 years ago

Ahoj, chtěl jsem se zeptat, jestli jde nějak v otestovat, zdali funkce dává správný výstup clicku. Konkrétně funkce vypíše něco stylem click.echo('cosi') a já chci udělat test na to, jestli bylo vypsáno 'cosi'. Našel jsem jen řešení stylem přes CliRunner().invoke() s result.output, což ale nechci, protože chci udělat akorát jednotkový test té funkce. Jde to nějak? Díky

hroncok commented 6 years ago

Fixture capsys https://docs.pytest.org/en/stable/capture.html

Taky se hodí click.unstyle, pokud píšeš barevně.

import click

def print_red_warning():
    click.secho('WARNING', fg='red')

def test_output_contains_exactly_warning(capsys):
    print_red_warning()
    out, err = capsys.readouterr()
    assert click.unstyle(out.strip()) == 'WARNING'
vanclmil commented 6 years ago

Jo díky, to jsem potřeboval.