Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ Changelog
in development
--------------

Fixed
~~~~~

* Fix Type error for ``time_diff`` critera comparison. convert the timediff value as float to match
``timedelta.total_seconds()`` return. #5462

Contributed by @blackstrip

Added
~~~~~

Expand Down
2 changes: 1 addition & 1 deletion st2common/st2common/operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ def _timediff(diff_target, period_seconds, operator):
# Note: date_utils.parse uses dateutil.parse which is way more flexible then strptime and
# supports many date formats
diff_target_utc = date_utils.parse(diff_target)
return operator((utc_now - diff_target_utc).total_seconds(), period_seconds)
return operator((utc_now - diff_target_utc).total_seconds(), float(period_seconds))


def timediff_lt(value, criteria_pattern):
Expand Down
28 changes: 28 additions & 0 deletions st2common/tests/unit/test_operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -943,6 +943,20 @@ def test_timediff_lt_fail(self):
"Passed test_timediff_lt with None as criteria_pattern.",
)

def test_timediff_lt_webui_value(self):
op = operators.get_operator("timediff_lt")
self.assertTrue(
op(date_utils.get_datetime_utc_now().isoformat(), "10"),
"Failed test_timediff_lt_webui_value.",
)

def test_timediff_lt_webui_value_fail(self):
op = operators.get_operator("timediff_lt")
self.assertFalse(
op("2014-07-01T00:01:01.000000", "10"),
"Passed test_timediff_lt_webui_value.",
)

def test_timediff_gt(self):
op = operators.get_operator("timediff_gt")
self.assertTrue(op("2014-07-01T00:01:01.000000", 1), "Failed test_timediff_gt.")
Expand All @@ -958,6 +972,20 @@ def test_timediff_gt_fail(self):
"Passed test_timediff_gt with None as criteria_pattern.",
)

def test_timediff_gt_webui_value(self):
op = operators.get_operator("timediff_gt")
self.assertTrue(
op("2014-07-01T00:01:01.000000", "1"),
"Failed test_timediff_gt_webui_value.",
)

def test_timediff_gt_webui_value_fail(self):
op = operators.get_operator("timediff_gt")
self.assertFalse(
op(date_utils.get_datetime_utc_now().isoformat(), "10"),
"Passed test_timediff_gt_webui_value.",
)

def test_exists(self):
op = operators.get_operator("exists")
self.assertTrue(op(False, None), "Should return True")
Expand Down