Skip to content

Commit 7d57693

Browse files
committed
feat: return code 1 when the test command has failures
fixes #18
1 parent 485475c commit 7d57693

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

doc/changelog.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
[0.2.2] - Unreleased
5+
--------------------
6+
7+
Added
8+
^^^^^
9+
- The :ref:`test` command returns 1 in case of errors.
10+
411
[0.2.1] - 2024-12-04
512
--------------------
613

scim2_cli/test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import sys
2+
13
import click
24
from scim2_tester import Status
35
from scim2_tester import check_server
@@ -20,14 +22,18 @@ def test_cli(ctx, verbose):
2022
client = ctx.obj["client"]
2123
results = check_server(client)
2224
click.echo(f"Performing a SCIM compliance check on {client.client.base_url} ...")
25+
success = True
2326
for result in results:
2427
if result.status == Status.SUCCESS:
2528
status = click.style(result.status.name, fg=Color.green)
2629
else:
2730
status = click.style(result.status.name, fg=Color.red)
31+
success = False
2832
click.echo(f"{status} {result.title}")
2933

3034
if result.reason:
3135
click.echo(f" {result.reason}")
3236
if verbose and result.data:
3337
click.echo(f" {result.data}")
38+
39+
sys.exit(0 if success else 1)

tests/test_test.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ def test_nominal(runner, httpserver):
3232
["--url", httpserver.url_for("/"), "test"],
3333
catch_exceptions=False,
3434
)
35-
assert result.exit_code == 0, result.stdout
3635

3736
expected_output = f"""Performing a SCIM compliance check on http://localhost:{httpserver.port}/ ...
3837
SUCCESS test1
@@ -68,7 +67,6 @@ def test_verbose(runner, httpserver):
6867
["--url", httpserver.url_for("/"), "test", "--verbose"],
6968
catch_exceptions=False,
7069
)
71-
assert result.exit_code == 0, result.stdout
7270

7371
expected_output = f"""Performing a SCIM compliance check on http://localhost:{httpserver.port}/ ...
7472
SUCCESS test1
@@ -79,3 +77,12 @@ def test_verbose(runner, httpserver):
7977
data2
8078
"""
8179
assert result.output == expected_output
80+
81+
82+
def test_failure(runner, httpserver):
83+
"""Test SCIM compliance test failure."""
84+
result = runner.invoke(
85+
cli,
86+
["--url", "http://scim.invalid", "test"],
87+
)
88+
assert result.exit_code == 1, result.stdout

0 commit comments

Comments
 (0)