Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions packages/jumpstarter-cli-admin/jumpstarter_cli_admin/get_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,10 @@ async def test_get_client(_load_kube_config_mock, get_client_mock: AsyncMock):

"""

CLIENTS_LIST_NAME = """client.jumpstarter.dev/test
client.jumpstarter.dev/another
"""

CLIENTS_LIST_EMPTY_YAML = """apiVersion: jumpstarter.dev/v1alpha1
items: []
kind: ClientList
Expand Down Expand Up @@ -259,7 +263,7 @@ async def test_get_clients(_load_kube_config_mock, list_clients_mock: AsyncMock)
list_clients_mock.return_value = CLIENTS_LIST
result = await runner.invoke(get, ["clients", "--output", "name"])
assert result.exit_code == 0
assert result.output == "client.jumpstarter.dev/test\n"
assert result.output == CLIENTS_LIST_NAME
list_clients_mock.reset_mock()

# No clients found
Expand Down Expand Up @@ -590,6 +594,10 @@ async def test_get_exporter_devices(_load_kube_config_mock, get_exporter_mock: A

"""

EXPORTERS_LIST_NAME = """exporter.jumpstarter.dev/test
exporter.jumpstarter.dev/another
"""


@pytest.mark.anyio
@patch.object(ExportersV1Alpha1Api, "list_exporters")
Expand Down Expand Up @@ -623,7 +631,7 @@ async def test_get_exporters(_load_kube_config_mock, list_exporters_mock: AsyncM
list_exporters_mock.return_value = EXPORTERS_LIST
result = await runner.invoke(get, ["exporters", "--output", "name"])
assert result.exit_code == 0
assert result.output == "exporter.jumpstarter.dev/test\n"
assert result.output == EXPORTERS_LIST_NAME
list_exporters_mock.reset_mock()

# No exporters found
Expand Down Expand Up @@ -754,6 +762,7 @@ async def test_get_exporters(_load_kube_config_mock, list_exporters_mock: AsyncM

"""

EXPORTERS_DEVICES_LIST_NAME = EXPORTERS_LIST_NAME

@pytest.mark.anyio
@patch.object(ExportersV1Alpha1Api, "list_exporters")
Expand Down Expand Up @@ -790,7 +799,7 @@ async def test_get_exporters_devices(_load_kube_config_mock, list_exporters_mock
list_exporters_mock.return_value = EXPORTER_DEVICES_LIST
result = await runner.invoke(get, ["exporters", "--devices", "--output", "name"])
assert result.exit_code == 0
assert result.output == "exporter.jumpstarter.dev/test\n"
assert result.output == EXPORTERS_DEVICES_LIST_NAME
list_exporters_mock.reset_mock()

# No exporters found
Expand Down Expand Up @@ -1128,6 +1137,9 @@ async def test_get_lease(_load_kube_config_mock, get_lease_mock: AsyncMock):

"""

LEASES_LIST_NAME = """lease.jumpstarter.dev/82a8ac0d-d7ff-4009-8948-18a3c5c607b1
lease.jumpstarter.dev/82a8ac0d-d7ff-4009-8948-18a3c5c607b2
"""

@pytest.mark.anyio
@patch.object(LeasesV1Alpha1Api, "list_leases")
Expand Down Expand Up @@ -1172,7 +1184,7 @@ async def test_get_leases(_load_kube_config_mock, list_leases_mock: AsyncMock):
list_leases_mock.return_value = V1Alpha1LeaseList(items=[IN_PROGRESS_LEASE, FINISHED_LEASE])
result = await runner.invoke(get, ["leases", "--output", "name"])
assert result.exit_code == 0
assert result.output == "lease.jumpstarter.dev/82a8ac0d-d7ff-4009-8948-18a3c5c607b1\n"
assert result.output == LEASES_LIST_NAME
list_leases_mock.reset_mock()

# No leases found
Expand Down
12 changes: 6 additions & 6 deletions packages/jumpstarter-cli-admin/jumpstarter_cli_admin/print.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ def print_clients(clients: V1Alpha1List[V1Alpha1Client], namespace: str, output:
elif output == OutputMode.YAML:
click.echo(clients.dump_yaml())
elif output == OutputMode.NAME:
if len(clients.items) > 0:
click.echo(f"client.jumpstarter.dev/{clients.items[0].metadata.name}")
for item in clients.items:
click.echo(f"client.jumpstarter.dev/{item.metadata.name}")
elif len(clients.items) == 0:
raise click.ClickException(f'No resources found in "{namespace}" namespace')
else:
Expand Down Expand Up @@ -104,8 +104,8 @@ def print_exporters(exporters: V1Alpha1List[V1Alpha1Exporter], namespace: str, d
elif output == OutputMode.YAML:
click.echo(exporters.dump_yaml())
elif output == OutputMode.NAME:
if len(exporters.items) > 0:
click.echo(f"exporter.jumpstarter.dev/{exporters.items[0].metadata.name}")
for item in exporters.items:
click.echo(f"exporter.jumpstarter.dev/{item.metadata.name}")
elif len(exporters.items) == 0:
raise click.ClickException(f'No resources found in "{namespace}" namespace')
elif devices:
Expand Down Expand Up @@ -168,8 +168,8 @@ def print_leases(leases: V1Alpha1List[V1Alpha1Lease], namespace: str, output: Ou
elif output == OutputMode.YAML:
click.echo(leases.dump_yaml())
elif output == OutputMode.NAME:
if len(leases.items) > 0:
click.echo(f"lease.jumpstarter.dev/{leases.items[0].metadata.name}")
for item in leases.items:
click.echo(f"lease.jumpstarter.dev/{item.metadata.name}")
elif len(leases.items) == 0:
raise click.ClickException(f'No resources found in "{namespace}" namespace')
else:
Expand Down