From 79e1cff421c5af21a59b80e545428d5cd371b82c Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Thu, 4 Nov 2021 21:30:34 +0300 Subject: [PATCH] take python laziness into account --- src/ahriman/models/build_status.py | 4 ++-- tests/ahriman/models/test_build_status.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ahriman/models/build_status.py b/src/ahriman/models/build_status.py index 262b8efc..163ab991 100644 --- a/src/ahriman/models/build_status.py +++ b/src/ahriman/models/build_status.py @@ -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: """ diff --git a/tests/ahriman/models/test_build_status.py b/tests/ahriman/models/test_build_status.py index 43776313..7af4a9b7 100644 --- a/tests/ahriman/models/test_build_status.py +++ b/tests/ahriman/models/test_build_status.py @@ -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