-
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathtest_repometadata.py
More file actions
59 lines (49 loc) · 1.87 KB
/
test_repometadata.py
File metadata and controls
59 lines (49 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import dataclasses
import datetime as dt
import unittest
from .postprocess import PostProcessOptions
from .repometadata import RawRepositoryMetadata
class TestRawRepositoryMetadata(unittest.TestCase):
"""Test the business methods of the RawRepositoryMetadata class."""
metadata: RawRepositoryMetadata = RawRepositoryMetadata(
name="test",
is_archive=False,
is_order_based=False,
required_env=["TEST"],
optional_env={"TEST": "test"},
max_connections=1,
postprocess_options=PostProcessOptions(),
available_models={},
)
def test_determine_latest_it_from(self) -> None:
"""Test the determine_latest_it_from method."""
@dataclasses.dataclass
class TestCase:
name: str
t: dt.datetime
expected: dt.datetime
tests = [
TestCase(
name="rolls_back_inter-day",
t=dt.datetime(2021, 1, 2, 0, tzinfo=dt.UTC),
expected=dt.datetime(2021, 1, 1, 18, tzinfo=dt.UTC),
),
TestCase(
name="rolls_back_intra-day",
t=dt.datetime(2021, 1, 1, 5, tzinfo=dt.UTC),
expected=dt.datetime(2021, 1, 1, 0, tzinfo=dt.UTC),
),
TestCase(
name="returns_to_hours",
t=dt.datetime(2021, 1, 1, 6, tzinfo=dt.UTC),
expected=dt.datetime(2021, 1, 1, 0, tzinfo=dt.UTC),
),
]
for test in tests:
with self.subTest(name=test.name):
result = self.metadata.determine_latest_it_from(test.t,
[0, 6, 12, 18],
delay_minutes=60)
self.assertEqual(result, test.expected)
if __name__ == "__main__":
unittest.main()