Skip to content
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
18 changes: 14 additions & 4 deletions cwmscli/commands/commands_cwms.py
Original file line number Diff line number Diff line change
Expand Up @@ -671,10 +671,15 @@ def update_cmd(**kwargs):
show_default=True,
help="Sort descending instead of ascending.",
)
@click.option("--limit", type=int, default=None, help="Max rows to show.")
@click.option(
"--limit",
type=click.IntRange(min=1),
default=None,
help="Max rows to show.",
)
@click.option(
"--page-size",
type=int,
type=click.IntRange(min=1),
default=None,
help="Max rows to request from the blob endpoint. Defaults to --limit if set, otherwise no pagination (all results in one page).",
)
Expand Down Expand Up @@ -837,10 +842,15 @@ def update_cmd(**kwargs):
show_default=True,
help="Sort descending instead of ascending.",
)
@click.option("--limit", type=int, default=None, help="Max rows to show.")
@click.option(
"--limit",
type=click.IntRange(min=1),
default=None,
help="Max rows to show.",
)
@click.option(
"--page-size",
type=int,
type=click.IntRange(min=1),
default=None,
help="Max rows to request from the clob endpoint. Defaults to --limit when set.",
)
Expand Down
60 changes: 60 additions & 0 deletions tests/cli/test_blob_list_validation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
from click.testing import CliRunner

from cwmscli.__main__ import cli


def test_blob_list_rejects_zero_limit():
result = CliRunner().invoke(
cli,
[
"blob",
"list",
"--office",
"SWT",
"--api-root",
"https://example.test/cwms-data/",
"--limit",
"0",
],
)

assert result.exit_code == 2
assert "Invalid value for '--limit'" in result.output


def test_blob_list_rejects_negative_page_size():
result = CliRunner().invoke(
cli,
[
"blob",
"list",
"--office",
"SWT",
"--api-root",
"https://example.test/cwms-data/",
"--page-size",
"-1",
],
)

assert result.exit_code == 2
assert "Invalid value for '--page-size'" in result.output


def test_clob_list_rejects_zero_limit():
result = CliRunner().invoke(
cli,
[
"clob",
"list",
"--office",
"SWT",
"--api-root",
"https://example.test/cwms-data/",
"--limit",
"0",
],
)

assert result.exit_code == 2
assert "Invalid value for '--limit'" in result.output
Loading