epoch can be a float with strftime filter. Fixes #71257 (#71314)

This commit is contained in:
Matt Martz 2020-08-17 13:46:49 -05:00 committed by GitHub
parent 9da880182b
commit 6289570234
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 1 deletions

View file

@ -0,0 +1,3 @@
bugfixes:
- strftime filter - Input epoch is allowed to be a float
(https://github.com/ansible/ansible/issues/71257)

View file

@ -102,7 +102,7 @@ def strftime(string_format, second=None):
''' return a date string using string. See https://docs.python.org/2/library/time.html#time.strftime for format ''' ''' return a date string using string. See https://docs.python.org/2/library/time.html#time.strftime for format '''
if second is not None: if second is not None:
try: try:
second = int(second) second = float(second)
except Exception: except Exception:
raise AnsibleFilterError('Invalid value for epoch value (%s)' % second) raise AnsibleFilterError('Invalid value for epoch value (%s)' % second)
return time.strftime(string_format, time.localtime(second)) return time.strftime(string_format, time.localtime(second))

View file

@ -325,6 +325,7 @@
assert: assert:
that: that:
- '"%Y-%m-%d"|strftime(1585247522) == "2020-03-26"' - '"%Y-%m-%d"|strftime(1585247522) == "2020-03-26"'
- '"%Y-%m-%d"|strftime("1585247522.0") == "2020-03-26"'
- '("%Y"|strftime(None)).startswith("20")' # Current date, can't check much there. - '("%Y"|strftime(None)).startswith("20")' # Current date, can't check much there.
- strftime_fail is failed - strftime_fail is failed
- '"Invalid value for epoch value" in strftime_fail.msg' - '"Invalid value for epoch value" in strftime_fail.msg'