Skip to content

Commit

Permalink
fix datetime validator
Browse files Browse the repository at this point in the history
  • Loading branch information
jonhealy1 committed Apr 18, 2024
1 parent 27a8edd commit 2b47e19
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
4 changes: 4 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## [Unreleased]

### Fixed

* BaseSearchGetRequest datetime validator str_to_interval not allowing GET /search requests with datetime = None ([#661](https://github.com/stac-utils/stac-fastapi/pull/661))

## [2.5.1] - 2024-04-18

### Fixed
Expand Down
14 changes: 10 additions & 4 deletions stac_fastapi/types/stac_fastapi/types/rfc3339.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def rfc3339_str_to_datetime(s: str) -> datetime:


def str_to_interval(
interval: str,
interval: Optional[str]
) -> Optional[DateTimeType]:
"""Extract a tuple of datetimes from an interval string.
Expand All @@ -56,12 +56,18 @@ def str_to_interval(
or end (but not both) to be open-ended with '..' or ''.
Args:
interval (str) : The interval string to convert to a :class:`datetime.datetime`
tuple.
interval (str or None): The interval string to convert to a tuple of datetime.datetime
objects, or None if no datetime is specified.
Returns:
Optional[DateTimeType]: A tuple of datetime.datetime objects or None if input is None.
Raises:
ValueError: If the string is not a valid interval string.
ValueError: If the string is not a valid interval string and not None.
"""
if interval is None:
return None

if not interval:
raise ValueError("Empty interval string is invalid.")

Expand Down
4 changes: 4 additions & 0 deletions stac_fastapi/types/tests/test_rfc3339.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,7 @@ def test_now_functions() -> None:
assert now1.tzinfo == timezone.utc

rfc3339_str_to_datetime(now_to_rfc3339_str())

def test_str_to_interval_with_none():
"""Test that str_to_interval returns None when provided with None."""
assert str_to_interval(None) is None, "str_to_interval should return None when input is None"

0 comments on commit 2b47e19

Please sign in to comment.