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
from dataclasses import dataclass, fields
from dataclasses import dataclass, field, fields
from enum import Enum
from typing import Any, Dict, Type
@ -84,7 +84,7 @@ class BuildStatus:
"""
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:
"""

View File

@ -1,4 +1,5 @@
import datetime
import time
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
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:
"""
must construct same object from json