Skip to content

Commit 8251b82

Browse files
author
Mike Kistler
committed
fix: Fix date/datetime_to_string handling of non-date/datetime inputs
1 parent 26c478c commit 8251b82

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

ibm_cloud_sdk_core/utils.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ def datetime_to_string(val: datetime.datetime) -> str:
7777
Returns:
7878
datetime serialized to iso8601 format.
7979
"""
80-
return val.isoformat().replace('+00:00', 'Z')
80+
if isinstance(val, datetime.datetime):
81+
return val.isoformat().replace('+00:00', 'Z')
82+
return val
8183

8284
def string_to_datetime(string: str) -> datetime.datetime:
8385
"""De-serializes string to datetime.
@@ -99,7 +101,9 @@ def date_to_string(val: datetime.date) -> str:
99101
Returns:
100102
date serialized to `YYYY-MM-DD` format.
101103
"""
102-
return str(val)
104+
if isinstance(val, datetime.date):
105+
return str(val)
106+
return val
103107

104108
def string_to_date(string: str) -> datetime.date:
105109
"""De-serializes string to date.

test/test_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ def test_datetime_conversion():
1111
assert date.day == 6
1212
res = datetime_to_string(date)
1313
assert res == '2017-03-06T16:00:04.159338'
14+
assert datetime_to_string(None) is None
1415

1516
def test_date_conversion():
1617
date = string_to_date('2017-03-06')
1718
assert date.day == 6
1819
res = date_to_string(date)
1920
assert res == '2017-03-06'
21+
assert date_to_string(None) is None
2022

2123
def test_convert_model():
2224

0 commit comments

Comments
 (0)