Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit c3d5386

Browse files
authored
Merge pull request #684 from michalskrivanek/ssh-group
don't add to group
2 parents 6261b7c + ff05456 commit c3d5386

5 files changed

Lines changed: 21 additions & 26 deletions

File tree

packages/jumpstarter-driver-composite/jumpstarter_driver_composite/client.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import inspect
21
import logging
32
from dataclasses import dataclass
43

@@ -50,11 +49,6 @@ def base():
5049

5150
for k, v in self.children.items():
5251
if hasattr(v, "cli"):
53-
# Check if the cli method accepts a click_group parameter
54-
sig = inspect.signature(v.cli)
55-
if "click_group" in sig.parameters:
56-
base.add_command(v.cli(click_group=base), k)
57-
else:
58-
base.add_command(v.cli(), k)
52+
base.add_command(v.cli(), k)
5953

6054
return base

packages/jumpstarter-driver-ssh/jumpstarter_driver_ssh/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ class SSHWrapperClient(CompositeClient):
2020
This client provides methods to interact with SSH connections via CLI
2121
"""
2222

23-
def cli(self, click_group):
24-
@click_group.command(context_settings={"ignore_unknown_options": True})
23+
def cli(self):
24+
@click.command(context_settings={"ignore_unknown_options": True})
2525
@click.option("--direct", is_flag=True, help="Use direct TCP address")
2626
@click.argument("args", nargs=-1)
2727
def ssh(direct, args):

packages/jumpstarter-driver-tmt/jumpstarter_driver_tmt/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ class TMTClient(CompositeClient):
3131
This client provides methods to interact with LocalTMT devices via SSH
3232
"""
3333

34-
def cli(self, click_group):
34+
def cli(self):
3535

36-
@click_group.command(context_settings={"ignore_unknown_options": True})
36+
@click.command(context_settings={"ignore_unknown_options": True})
3737
@click.option("--forward-ssh", is_flag=True)
3838
@click.option("--tmt-username", default=None)
3939
@click.option("--tmt-password", default=None)

packages/jumpstarter-driver-tmt/jumpstarter_driver_tmt/driver_test.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from unittest.mock import MagicMock, patch
22

3-
import click
43
import pytest
54
from click.testing import CliRunner
65
from jumpstarter_driver_network.driver import TcpNetwork
@@ -24,18 +23,18 @@ def test_drivers_tmt_cli():
2423
with serve(instance) as client:
2524
# Test the CLI tmt command without arguments
2625
runner = CliRunner()
27-
cli = client.cli(click.Group())
26+
cli = client.cli()
2827

2928
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
3029
mock_run_tmt.return_value = 0 # Success return code
31-
result = runner.invoke(cli, ["tmt"])
30+
result = runner.invoke(cli, [])
3231
assert result.exit_code == 0
3332
mock_run_tmt.assert_called_once()
3433

3534
# Test the CLI tmt command with arguments
3635
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
3736
mock_run_tmt.return_value = 0 # Success return code
38-
result = runner.invoke(cli, ["tmt", "test", "arg1", "arg2"])
37+
result = runner.invoke(cli, ["test", "arg1", "arg2"])
3938
assert result.exit_code == 0
4039
mock_run_tmt.assert_called_once()
4140

@@ -46,28 +45,28 @@ def test_drivers_tmt_cli_with_options():
4645

4746
with serve(instance) as client:
4847
runner = CliRunner()
49-
cli = client.cli(click.Group())
48+
cli = client.cli()
5049

5150
# Test with --forward-ssh flag
5251
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
5352
mock_run_tmt.return_value = 0 # Success return code
54-
result = runner.invoke(cli, ["tmt", "--forward-ssh", "test"])
53+
result = runner.invoke(cli, ["--forward-ssh", "test"])
5554
assert result.exit_code == 0
5655
mock_run_tmt.assert_called_once()
5756

5857
# Test with custom username and password
5958
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
6059
mock_run_tmt.return_value = 0 # Success return code
6160
result = runner.invoke(
62-
cli, ["tmt", "--tmt-username", "custom_user", "--tmt-password", "custom_pass", "test"]
61+
cli, ["--tmt-username", "custom_user", "--tmt-password", "custom_pass", "test"]
6362
)
6463
assert result.exit_code == 0
6564
mock_run_tmt.assert_called_once()
6665

6766
# Test with custom tmt command
6867
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
6968
mock_run_tmt.return_value = 0 # Success return code
70-
result = runner.invoke(cli, ["tmt", "--tmt-cmd", "custom-tmt", "test"])
69+
result = runner.invoke(cli, ["--tmt-cmd", "custom-tmt", "test"])
7170
assert result.exit_code == 0
7271
mock_run_tmt.assert_called_once()
7372

@@ -78,12 +77,12 @@ def test_drivers_tmt_cli_error_handling():
7877

7978
with serve(instance) as client:
8079
runner = CliRunner()
81-
cli = client.cli(click.Group())
80+
cli = client.cli()
8281

8382
# Test CLI with non-zero return code
8483
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
8584
mock_run_tmt.return_value = 1 # Error return code
86-
result = runner.invoke(cli, ["tmt", "test"])
85+
result = runner.invoke(cli, ["test"])
8786
assert result.exit_code == 1
8887
mock_run_tmt.assert_called_once()
8988

@@ -94,10 +93,10 @@ def test_drivers_tmt_cli_tmt_on_exporter():
9493

9594
with serve(instance) as client:
9695
runner = CliRunner()
97-
cli = client.cli(click.Group())
96+
cli = client.cli()
9897

9998
# Test CLI with --tmt-on-exporter flag (should abort)
100-
result = runner.invoke(cli, ["tmt", "--tmt-on-exporter", "test"])
99+
result = runner.invoke(cli, ["--tmt-on-exporter", "test"])
101100
assert result.exit_code == 1 # click.Abort() returns exit code 1
102101
assert "TMT will be run on the exporter" in result.output
103102
assert "Aborted!" in result.output
@@ -428,11 +427,11 @@ def test_drivers_tmt_cli_logging():
428427

429428
with serve(instance) as client:
430429
runner = CliRunner()
431-
cli = client.cli(click.Group())
430+
cli = client.cli()
432431

433432
with patch.object(client, '_run_tmt_local') as mock_run_tmt:
434433
mock_run_tmt.return_value = 0
435434
with patch.object(client.logger, 'debug') as mock_debug:
436-
result = runner.invoke(cli, ["tmt", "test"])
435+
result = runner.invoke(cli, ["test"])
437436
assert result.exit_code == 0
438437
mock_debug.assert_called_with("TMT result: 0")

uv.lock

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)