summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorInada Naoki <songofacandy@gmail.com>2019-12-11 23:48:16 +0900
committerGitHub <noreply@github.com>2019-12-11 23:48:16 +0900
commit2186455d1579affc33253484d9445f7bdf3f7c29 (patch)
tree4081e93d9815fb0a63a81e9d3a55b1f971b02ac6 /test
parent5fd611909319d03200774ea3c7a6ae16dbd26c12 (diff)
downloadmsgpack-python-2186455d1579affc33253484d9445f7bdf3f7c29.tar.gz
Support datetime. (#394)
Diffstat (limited to 'test')
-rw-r--r--test/test_timestamp.py48
1 files changed, 46 insertions, 2 deletions
diff --git a/test/test_timestamp.py b/test/test_timestamp.py
index 1348e69..822994c 100644
--- a/test/test_timestamp.py
+++ b/test/test_timestamp.py
@@ -1,5 +1,11 @@
+import pytest
+import sys
+import datetime
import msgpack
-from msgpack import Timestamp
+from msgpack.ext import Timestamp
+
+if sys.version_info[0] > 2:
+ from msgpack.ext import _utc
def test_timestamp():
@@ -42,5 +48,43 @@ def test_timestamp():
def test_timestamp_to():
t = Timestamp(42, 14)
- assert t.to_float_s() == 42.000000014
+ assert t.to_float() == 42.000000014
assert t.to_unix_ns() == 42000000014
+
+
+@pytest.mark.skipif(sys.version_info[0] == 2, reason="datetime support is PY3+ only")
+def test_timestamp_datetime():
+ t = Timestamp(42, 14)
+ assert t.to_datetime() == datetime.datetime(1970, 1, 1, 0, 0, 42, 0, tzinfo=_utc)
+
+
+@pytest.mark.skipif(sys.version_info[0] == 2, reason="datetime support is PY3+ only")
+def test_unpack_datetime():
+ t = Timestamp(42, 14)
+ packed = msgpack.packb(t)
+ unpacked = msgpack.unpackb(packed, timestamp=3)
+ assert unpacked == datetime.datetime(1970, 1, 1, 0, 0, 42, 0, tzinfo=_utc)
+
+
+@pytest.mark.skipif(sys.version_info[0] == 2, reason="datetime support is PY3+ only")
+def test_pack_datetime():
+ t = Timestamp(42, 14000)
+ dt = t.to_datetime()
+ assert dt == datetime.datetime(1970, 1, 1, 0, 0, 42, 14, tzinfo=_utc)
+
+ packed = msgpack.packb(dt, datetime=True)
+ packed2 = msgpack.packb(t)
+ assert packed == packed2
+
+ unpacked = msgpack.unpackb(packed)
+ print(packed, unpacked)
+ assert unpacked == t
+
+ unpacked = msgpack.unpackb(packed, timestamp=3)
+ assert unpacked == dt
+
+ x = []
+ packed = msgpack.packb(dt, datetime=False, default=x.append)
+ assert x
+ assert x[0] == dt
+ assert msgpack.unpackb(packed) is None