Handle TZ change in iso8601 >=0.1.12

The iso8601 lib introduced a change such that if running on python
3.2 or later it internally uses the python timezone information
instead of its own implementation. This does not change direct
date handling, but when converting this value there is a slight
difference where now python 2.x will show UTC times as "UTC",
but on python 3 they will end up with "UTC+00:00".

The to_primitive call for DateTime fields was doing an exact match
on "UTC" to determine whether to include "Z" in the resulting string.
This updates that handling to recognize either of the new values

Change-Id: I426cf42ddcf6e8aa2d43f286eb76908670cc8d16
Closes-bug: #1744160
This commit is contained in:
deepak_mourya 2018-01-19 15:36:18 +05:30 committed by Deepak Mourya
parent 425c377cef
commit fa9241c473

@ -1253,7 +1253,7 @@ def isotime(at=None):
at = timeutils.utcnow()
date_string = at.strftime("%Y-%m-%dT%H:%M:%S")
tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC'
date_string += ('Z' if tz == 'UTC' else tz)
date_string += ('Z' if tz in ['UTC', 'UTC+00:00'] else tz)
return date_string