Skip to content
Open
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
21 changes: 20 additions & 1 deletion cli/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import click
import pytest

from opensandbox_cli.utils import DURATION, KEY_VALUE, parse_duration
from opensandbox_cli.utils import DURATION, KEY_VALUE, parse_duration, parse_nullable_duration

# ---------------------------------------------------------------------------
# parse_duration
Expand Down Expand Up @@ -68,6 +68,25 @@ def test_strips_whitespace(self) -> None:
# ---------------------------------------------------------------------------


class TestParseNullableDuration:
def test_none_literal_returns_none(self) -> None:
assert parse_nullable_duration("none") is None

def test_none_case_insensitive(self) -> None:
assert parse_nullable_duration("NONE") is None
assert parse_nullable_duration("None") is None

def test_none_strips_whitespace(self) -> None:
assert parse_nullable_duration(" none ") is None

def test_valid_duration_parsed(self) -> None:
assert parse_nullable_duration("10m") == timedelta(minutes=10)

def test_invalid_duration_raises(self) -> None:
with pytest.raises(click.BadParameter):
parse_nullable_duration("invalid")


class TestDurationType:
def test_converts_string(self) -> None:
result = DURATION.convert("5m", None, None)
Expand Down
Loading