Fix tests failing on 1 sec time differences

Signed-off-by: Valerij Maljulin <vmaljuli@redhat.com>
This commit is contained in:
Valerij Maljulin
2019-08-14 12:58:20 +02:00
parent 34dc744041
commit a6e7741553
2 changed files with 37 additions and 9 deletions

View File

@@ -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)

View File

@@ -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"] == []