auvipy / pytest-click

Py.test plugin for Click

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pytest-click

Build Coverage Version Python versions License

pytest plugin for Click.

Installation

The current stable release:

pip install pytest_click

Usage

`pytest-click comes with some configurable fixtures - cli_runner and isolated_cli_runner.

import click


def test_cli(cli_runner):
    @click.command()
    @click.argument("name")
    def hello(name):
        click.echo("Hello %s!" % name)

    result = cli_runner.invoke(hello, ["Peter"])
    assert result.exit_code == 0
    assert result.output == "Hello Peter!\n"
import click


def test_fixture(isolated_cli_runner):
    @click.command()
    @click.argument("f", type=click.File())
    def cat(f):
        click.echo(f.read())

    with open("hello.txt", "w") as f:
        f.write("Hello World!")

    result = isolated_cli_runner.invoke(cat, ["hello.txt"])
    assert result.exit_code == 0
    assert result.output == "Hello World!\n"

Both runners can be configured via runner_setup mark:

import pytest


@pytest.mark.runner_setup(charset="cp1251", env={"test": 1}, echo_stdin=True)
def test_runner_setup(cli_runner):
    ...

All kwargs will be passed to click.testing.CliRunner initialization.

About

Py.test plugin for Click

License:MIT License


Languages

Language:Python 77.9%Language:Makefile 22.1%