take python laziness into account

This commit is contained in:
Evgenii Alekseev 2021-11-04 21:30:34 +03:00
parent 2e07de4a12
commit 79e1cff421
2 changed files with 14 additions and 2 deletions

View File

@ -21,7 +21,7 @@ from __future__ import annotations
import datetime import datetime
from dataclasses import dataclass, fields from dataclasses import dataclass, field, fields
from enum import Enum from enum import Enum
from typing import Any, Dict, Type from typing import Any, Dict, Type
@ -84,7 +84,7 @@ class BuildStatus:
""" """
status: BuildStatusEnum = BuildStatusEnum.Unknown status: BuildStatusEnum = BuildStatusEnum.Unknown
timestamp: int = int(datetime.datetime.utcnow().timestamp()) timestamp: int = field(default_factory=lambda: int(datetime.datetime.utcnow().timestamp()))
def __post_init__(self) -> None: def __post_init__(self) -> None:
""" """

View File

@ -1,4 +1,5 @@
import datetime import datetime
import time
from ahriman.models.build_status import BuildStatus, BuildStatusEnum from ahriman.models.build_status import BuildStatus, BuildStatusEnum
@ -45,6 +46,17 @@ def test_build_status_init_2(build_status_failed: BuildStatus) -> None:
assert status == build_status_failed assert status == build_status_failed
def test_build_status_init_empty_timestamp() -> None:
"""
must st current timestamp when not set
"""
first = BuildStatus()
time.sleep(1)
second = BuildStatus()
# well technically it just should increase
assert first.timestamp < second.timestamp
def test_build_status_from_json_view(build_status_failed: BuildStatus) -> None: def test_build_status_from_json_view(build_status_failed: BuildStatus) -> None:
""" """
must construct same object from json must construct same object from json