Coverage for tests / unit / cli_utils / command_chainer / test_group_commands.py: 100%
24 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Tests for CommandChainer.group_commands method."""
3from __future__ import annotations
5import click
6from assertpy import assert_that
8from lintro.cli_utils.command_chainer import CommandChainer
11def test_group_single_command(mock_group: click.Group) -> None:
12 """Test grouping of a single command.
14 Args:
15 mock_group: Mocked Click group fixture.
16 """
17 chainer = CommandChainer(mock_group)
19 result = chainer.group_commands(["fmt", "."])
21 assert_that(result).is_equal_to([["fmt", "."]])
24def test_group_two_commands(mock_group: click.Group) -> None:
25 """Test grouping of two commands.
27 Args:
28 mock_group: Mocked Click group fixture.
29 """
30 chainer = CommandChainer(mock_group)
32 result = chainer.group_commands(["fmt", ".", ",", "chk", "."])
34 assert_that(result).is_equal_to([["fmt", "."], ["chk", "."]])
37def test_group_three_commands(mock_group: click.Group) -> None:
38 """Test grouping of three commands.
40 Args:
41 mock_group: Mocked Click group fixture.
42 """
43 chainer = CommandChainer(mock_group)
45 result = chainer.group_commands(["fmt", ",", "chk", ",", "tst"])
47 assert_that(result).is_equal_to([["fmt"], ["chk"], ["tst"]])
50def test_group_empty_args(mock_group: click.Group) -> None:
51 """Test grouping of empty args.
53 Args:
54 mock_group: Mocked Click group fixture.
55 """
56 chainer = CommandChainer(mock_group)
58 result = chainer.group_commands([])
60 assert_that(result).is_equal_to([])
63def test_group_ignores_empty_groups(mock_group: click.Group) -> None:
64 """Test that empty groups from consecutive separators are ignored.
66 Args:
67 mock_group: Mocked Click group fixture.
68 """
69 chainer = CommandChainer(mock_group)
71 result = chainer.group_commands(["fmt", ",", ",", "chk"])
73 assert_that(result).is_equal_to([["fmt"], ["chk"]])