hello()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nop 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
from unittest import mock
2
3
from click.testing import CliRunner
4
5
from lagom import Container, injectable
6
from lagom.experimental.integrations.click import ClickIntegration, ClickIO
7
8
container = Container()
9
cli = ClickIntegration(container)
10
11
12
@cli.command()
13
@cli.argument("name")
14
def hello(name, io: ClickIO = injectable):
15
    io.echo(f"Hello {name}")
16
17
18
def test_click_io_objected_is_injected_and_proxies_click_as_expected():
19
    runner = CliRunner()
20
    result = runner.invoke(hello, args=["Steve"])
21
    assert result.exit_code == 0
22
    assert result.output == "Hello Steve\n"
23
24
25
def test_a_reference_to_the_plain_function_is_exposed_for_testing():
26
    mock_io = mock.create_autospec(ClickIO)
27
    hello.plain_function("again", mock_io)
28
    mock_io.echo.assert_called_once_with("Hello again")
29