Skip to content

Commit 696a661

Browse files
committed
increased converage and dropped serve CLI
1 parent 56c9701 commit 696a661

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

services/invitations/src/simcore_service_invitations/cli.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import getpass
22
import logging
3+
import os
34

45
import typer
56
from cryptography.fernet import Fernet
@@ -14,7 +15,6 @@
1415
print_as_envfile,
1516
)
1617

17-
from . import web_server
1818
from ._meta import PROJECT_NAME, __version__
1919
from .core.settings import ApplicationSettings, MinimalApplicationSettings
2020
from .services.invitations import (
@@ -50,7 +50,7 @@ def generate_key(
5050
export INVITATIONS_SECRET_KEY=$(invitations-maker generate-key)
5151
"""
5252
assert ctx # nosec
53-
print(Fernet.generate_key().decode()) # noqa: T201
53+
typer.echo(Fernet.generate_key().decode())
5454

5555

5656
@main.command()
@@ -133,7 +133,7 @@ def invite(
133133
base_url=settings.INVITATIONS_OSPARC_URL,
134134
default_product=settings.INVITATIONS_DEFAULT_PRODUCT,
135135
)
136-
print(invitation_link) # noqa: T201
136+
typer.echo(invitation_link)
137137

138138

139139
@main.command()
@@ -153,18 +153,8 @@ def extract(ctx: typer.Context, invitation_url: str):
153153
)
154154
assert invitation.product is not None # nosec
155155

156-
print(invitation.model_dump_json(indent=1)) # noqa: T201
156+
typer.echo(invitation.model_dump_json(indent=1))
157157

158-
except (InvalidInvitationCodeError, ValidationError):
159-
_err_console.print("[bold red]Invalid code[/bold red]")
160-
161-
162-
@main.command()
163-
def serve(
164-
ctx: typer.Context,
165-
*,
166-
reload: bool = False,
167-
):
168-
"""Starts server with http API"""
169-
assert ctx # nosec
170-
web_server.start(log_level="info", reload=reload)
158+
except (InvalidInvitationCodeError, ValidationError) as err:
159+
typer.secho("Invalid code", fg=typer.colors.RED, bold=True, err=True)
160+
raise typer.Exit(os.EX_DATAERR) from err

services/invitations/tests/unit/test_cli.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,24 @@ def test_list_settings(cli_runner: CliRunner, app_environment: EnvVarsDict):
104104
print(result.output)
105105
settings = ApplicationSettings.model_validate_json(result.output)
106106
assert settings == ApplicationSettings.create_from_envs()
107+
108+
109+
def test_extract_invalid_invitation_code(
110+
cli_runner: CliRunner, faker: Faker, app_environment: EnvVarsDict
111+
):
112+
"""Test that extract command handles invalid invitation codes properly"""
113+
# Create an invalid invitation URL
114+
invalid_invitation_url = f"{faker.url()}#invitation=invalid_code_123"
115+
116+
# Run extract command with invalid invitation URL
117+
result = cli_runner.invoke(
118+
main,
119+
f'extract "{invalid_invitation_url}"',
120+
env=app_environment,
121+
)
122+
123+
# Verify command exits with correct error code
124+
assert result.exit_code == os.EX_DATAERR
125+
126+
# Verify error message is displayed via stderr
127+
assert "Invalid code" in result.stdout

0 commit comments

Comments
 (0)