mirror of
https://github.com/msgpack/msgpack-python.git
synced 2025-11-01 10:00:54 +00:00
Support datetime. (#394)
This commit is contained in:
parent
5fd6119093
commit
2186455d15
8 changed files with 222 additions and 24 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue