chore: clearify some tests to help my brain (#41480)

clarify some tests with the holy fire of parameterization
This commit is contained in:
Paul D'Ambra
2025-11-13 19:52:39 +00:00
committed by GitHub
parent b25775cc1a
commit 57a585232f

View File

@@ -3,6 +3,8 @@ from datetime import UTC, datetime
from freezegun import freeze_time
from posthog.test.base import APIBaseTest
from parameterized import parameterized
from posthog.schema import DateRange
from posthog.session_recordings.queries.sub_queries.base_query import SessionRecordingsQueryDateRange
@@ -10,69 +12,59 @@ from posthog.session_recordings.queries.sub_queries.base_query import SessionRec
@freeze_time("2021-01-01T13:46:23")
class TestSessionRecordingsQueryDateRange(APIBaseTest):
def test_with_relative_dates(self) -> None:
@parameterized.expand(
[
(
"relative_dates",
"-3d",
"-24h",
datetime(2020, 12, 29, 0, 0, 0, 0, UTC),
datetime(2020, 12, 31, 13, 46, 23, tzinfo=UTC),
),
(
"date_only_strings_get_start_and_end_of_day",
"2020-12-29",
"2021-01-01",
datetime(2020, 12, 29, 0, 0, 0, 0, UTC),
datetime(2021, 1, 1, 23, 59, 59, 999999, UTC),
),
(
"datetime_strings_preserve_exact_time",
"2020-12-29T12:23:45Z",
"2021-01-01T13:34:42Z",
datetime(2020, 12, 29, 12, 23, 45, tzinfo=UTC),
datetime(2021, 1, 1, 13, 34, 42, tzinfo=UTC),
),
(
"missing_date_from_defaults_to_7_days_ago",
None,
"2021-01-01T13:34:42Z",
datetime(2020, 12, 25, 0, 0, 0, 0, UTC),
datetime(2021, 1, 1, 13, 34, 42, tzinfo=UTC),
),
(
"missing_date_to_defaults_to_now",
"2021-01-01T11:34:42Z",
None,
datetime(2021, 1, 1, 11, 34, 42, tzinfo=UTC),
datetime(2021, 1, 1, 13, 46, 23, tzinfo=UTC),
),
]
)
def test_date_range_parsing(
self,
_name: str,
input_date_from: str | None,
input_date_to: str | None,
expected_date_from: datetime,
expected_date_to: datetime,
) -> None:
query_date_range = SessionRecordingsQueryDateRange(
date_range=DateRange(date_from="-3d", date_to="-24h", explicitDate=True),
date_range=DateRange(date_from=input_date_from, date_to=input_date_to, explicitDate=True),
team=self.team,
interval=None,
now=datetime.now(UTC),
)
assert query_date_range.date_from() == datetime(2020, 12, 29, 0, 0, 0, 0, UTC)
assert query_date_range.date_to() == datetime(
year=2020, month=12, day=31, hour=13, minute=46, second=23, tzinfo=UTC
)
def test_with_string_dates(self) -> None:
query_date_range = SessionRecordingsQueryDateRange(
date_range=DateRange(date_from="2020-12-29", date_to="2021-01-01", explicitDate=True),
team=self.team,
interval=None,
now=datetime.now(UTC),
)
assert query_date_range.date_from() == datetime(2020, 12, 29, 0, 0, 0, 0, UTC)
assert query_date_range.date_to() == datetime(
year=2021, month=1, day=1, hour=23, minute=59, second=59, microsecond=999999, tzinfo=UTC
)
def test_with_string_date_times(self) -> None:
query_date_range = SessionRecordingsQueryDateRange(
date_range=DateRange(date_from="2020-12-29T12:23:45Z", date_to="2021-01-01T13:34:42Z", explicitDate=True),
team=self.team,
interval=None,
now=datetime.now(UTC),
)
assert query_date_range.date_from() == datetime(2020, 12, 29, 12, 23, 45, tzinfo=UTC)
assert query_date_range.date_to() == datetime(
year=2021, month=1, day=1, hour=13, minute=34, second=42, tzinfo=UTC
)
def test_with_no_date_from(self) -> None:
query_date_range = SessionRecordingsQueryDateRange(
date_range=DateRange(date_from=None, date_to="2021-01-01T13:34:42Z", explicitDate=True),
team=self.team,
interval=None,
now=datetime.now(UTC),
)
# defaults to start of 7 days ago
assert query_date_range.date_from() == datetime(2020, 12, 25, 0, 0, 0, 0, UTC)
assert query_date_range.date_to() == datetime(
year=2021, month=1, day=1, hour=13, minute=34, second=42, tzinfo=UTC
)
def test_with_no_date_to(self) -> None:
query_date_range = SessionRecordingsQueryDateRange(
date_range=DateRange(date_from="2021-01-01T11:34:42Z", date_to=None, explicitDate=True),
team=self.team,
interval=None,
now=datetime.now(UTC),
)
assert query_date_range.date_from() == datetime(2021, 1, 1, 11, 34, 42, tzinfo=UTC)
# defaults to now
assert query_date_range.date_to() == datetime(
year=2021, month=1, day=1, hour=13, minute=46, second=23, tzinfo=UTC
)
assert query_date_range.date_from() == expected_date_from
assert query_date_range.date_to() == expected_date_to