Skip to content

Commit 045a355

Browse files
author
Riccardo Busetti
authored
fix(metrics): Fix flaky test [TET-505] (getsentry#40954)
1 parent 7eb2f1d commit 045a355

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/sentry/snuba/metrics/query.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,9 @@ def calculate_intervals_len(
264264
end = datetime.fromtimestamp(int(end.timestamp() / interval) * interval, timezone.utc)
265265

266266
range_in_sec = (end - start).total_seconds()
267+
if range_in_sec == 0:
268+
raise InvalidParams("Rounded start and end time are the same")
269+
267270
denominator = interval
268271
return math.ceil(range_in_sec / denominator)
269272

tests/sentry/snuba/metrics/test_query.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Optional, Sequence
44

55
import pytest
6+
from freezegun import freeze_time
67
from snuba_sdk import Direction, Granularity, Limit, Offset
78
from snuba_sdk.conditions import ConditionGroup
89

@@ -616,7 +617,7 @@ def test_ensure_interval_set_to_granularity_in_performance_queries():
616617
assert mq.interval == mq.granularity.granularity
617618

618619

619-
@pytest.mark.skip(reason="flaky test: TET-505")
620+
@freeze_time("2022-11-03 10:10:00")
620621
@pytest.mark.parametrize(
621622
"granularity, interval, expected_granularity",
622623
[
@@ -645,3 +646,18 @@ def test_ensure_granularity_is_less_than_interval(granularity, interval, expecte
645646
metrics_query_dict = metrics_query.to_metrics_query_dict()
646647
mq = MetricsQuery(**metrics_query_dict)
647648
assert mq.granularity.granularity == expected_granularity
649+
650+
651+
@freeze_time("2022-11-03 09:45:00")
652+
def test_ensure_intervals_len_0_results_in_error():
653+
metrics_query = (
654+
MetricsQueryBuilder()
655+
.with_select([MetricField(op="p95", metric_mri=TransactionMRI.DURATION.value)])
656+
.with_include_series(True)
657+
.with_granularity(Granularity(86400))
658+
.with_interval(7200)
659+
)
660+
661+
with pytest.raises(InvalidParams):
662+
metrics_query_dict = metrics_query.to_metrics_query_dict()
663+
MetricsQuery(**metrics_query_dict)

0 commit comments

Comments
 (0)