diff --git a/chargebee/util.py b/chargebee/util.py index bcc2504..b20237b 100644 --- a/chargebee/util.py +++ b/chargebee/util.py @@ -1,3 +1,6 @@ +import calendar +from datetime import datetime + from chargebee import compat def serialize(value, prefix=None, idx=None): @@ -34,6 +37,8 @@ def get_val(val): return '' elif isinstance(val, bool): return str(val).lower() + elif isinstance(val, datetime): + return calendar.timegm(val.utctimetuple()) else: if compat.py_major_v < 3 and isinstance(val, unicode): return val.encode("utf-8") diff --git a/tests/util.py b/tests/util.py index 41bb308..311b4d7 100644 --- a/tests/util.py +++ b/tests/util.py @@ -1,5 +1,7 @@ import unittest +import datetime + from chargebee import util @@ -25,7 +27,8 @@ def test_serialize(self): 'expiry_month': '1', 'expiry_year': '2024', 'cvv': '007', - } + }, + 'starts': datetime.datetime(2017,01,10) } after = { @@ -40,6 +43,7 @@ def test_serialize(self): 'card[expiry_month]': '1', 'card[expiry_year]': '2024', 'card[cvv]': '007', + 'starts': 1484006400, } self.assertEqual(after, util.serialize(before))