mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-13 21:39:59 +08:00
Fix tests failing on 1 sec time differences
Signed-off-by: Valerij Maljulin <vmaljuli@redhat.com>
This commit is contained in:
@@ -24,6 +24,7 @@ import functools
|
||||
import os
|
||||
from datetime import datetime, timedelta
|
||||
from mock import patch
|
||||
from six import string_types
|
||||
import time
|
||||
import hashlib
|
||||
from traceback import extract_stack
|
||||
@@ -633,3 +634,30 @@ def module_build_from_modulemd(yaml):
|
||||
build.time_completed = None
|
||||
build.rebuild_strategy = "changed-and-after"
|
||||
return build
|
||||
|
||||
|
||||
def time_assert(*args, **kwargs):
|
||||
"""
|
||||
check if delta between times in args not exceeding max_delta (part of kwargs)
|
||||
:param args: times to be compared
|
||||
:param kwargs: arguments for comparing:
|
||||
max_delta - value in seconds which shouldn't be exceeded (default: 2 sec, numeric)
|
||||
format_str - if values in args are of type str it should be formated as this
|
||||
(default: '%Y-%m-%dT%H:%M:%SZ', str)
|
||||
:return: true if all times are within the range
|
||||
:rtype: bool
|
||||
"""
|
||||
times_list = []
|
||||
format_str = kwargs.get("format_str", "%Y-%m-%dT%H:%M:%SZ")
|
||||
max_delta = kwargs.get("max_delta", 2)
|
||||
for t in args:
|
||||
if isinstance(t, string_types):
|
||||
dt = datetime.strptime(t, format_str)
|
||||
elif isinstance(t, datetime):
|
||||
dt = t
|
||||
else:
|
||||
raise TypeError(
|
||||
'"{}" is not supported for time_assert function'.format(type(t).__name__)
|
||||
)
|
||||
times_list.append(dt)
|
||||
return bool(abs((max(times_list) - min(times_list)).total_seconds()) <= max_delta)
|
||||
|
||||
@@ -37,7 +37,7 @@ import re
|
||||
import sqlalchemy
|
||||
|
||||
from tests import app, init_data, clean_database, staged_data_filename, make_module_in_db
|
||||
from tests import read_staged_data
|
||||
from tests import read_staged_data, time_assert
|
||||
from tests.test_scm import base_dir as scm_base_dir
|
||||
from module_build_service.errors import UnprocessableEntity
|
||||
from module_build_service.models import ModuleBuild, BUILD_STATES, ComponentBuild
|
||||
@@ -1955,10 +1955,10 @@ class TestViews:
|
||||
assert data["module"]["state_name"] == "ready"
|
||||
assert data["module"]["scmurl"] is None
|
||||
assert data["module"]["component_builds"] == []
|
||||
assert (
|
||||
data["module"]["time_submitted"]
|
||||
== data["module"]["time_modified"]
|
||||
== data["module"]["time_completed"]
|
||||
assert time_assert(
|
||||
data["module"]["time_submitted"],
|
||||
data["module"]["time_modified"],
|
||||
data["module"]["time_completed"]
|
||||
)
|
||||
assert data["module"]["koji_tag"] == "mariadb-10.2-20180724000000-00000000"
|
||||
assert data["module"]["siblings"] == []
|
||||
@@ -1996,10 +1996,10 @@ class TestViews:
|
||||
assert data["module"]["state_name"] == "ready"
|
||||
assert data["module"]["scmurl"] is None
|
||||
assert data["module"]["component_builds"] == []
|
||||
assert (
|
||||
data["module"]["time_submitted"]
|
||||
== data["module"]["time_modified"]
|
||||
== data["module"]["time_completed"]
|
||||
assert time_assert(
|
||||
data["module"]["time_submitted"],
|
||||
data["module"]["time_modified"],
|
||||
data["module"]["time_completed"]
|
||||
)
|
||||
assert data["module"]["koji_tag"] == "mariadb-10.2-20180724065109-00000000"
|
||||
assert data["module"]["siblings"] == []
|
||||
|
||||
Reference in New Issue
Block a user