20 lines
638 B
Python
20 lines
638 B
Python
from datetime import UTC, datetime, timedelta
|
|
import unittest
|
|
|
|
from production_analytics.domain import SourceRange
|
|
|
|
|
|
class SourceRangeTests(unittest.TestCase):
|
|
def test_accepts_ordered_timestamps(self) -> None:
|
|
start = datetime(2026, 1, 1, tzinfo=UTC)
|
|
source_range = SourceRange(start=start, end=start + timedelta(minutes=1))
|
|
|
|
self.assertEqual(source_range.start, start)
|
|
|
|
|
|
def test_rejects_reverse_interval(self) -> None:
|
|
end = datetime(2026, 1, 1, tzinfo=UTC)
|
|
|
|
with self.assertRaisesRegex(ValueError, "must not precede"):
|
|
SourceRange(start=end + timedelta(seconds=1), end=end)
|