Show More
@@ -13,6 +13,8 b'' | |||
|
13 | 13 | |
|
14 | 14 | import os |
|
15 | 15 | import uuid |
|
16 | from datetime import datetime | |
|
17 | ||
|
16 | 18 | import zmq |
|
17 | 19 | |
|
18 | 20 | from zmq.tests import BaseZMQTestCase |
@@ -20,6 +22,10 b' from zmq.eventloop.zmqstream import ZMQStream' | |||
|
20 | 22 | |
|
21 | 23 | from IPython.kernel.zmq import session as ss |
|
22 | 24 | |
|
25 | from IPython.testing.decorators import skipif, module_not_available | |
|
26 | from IPython.utils.py3compat import string_types | |
|
27 | from IPython.utils import jsonutil | |
|
28 | ||
|
23 | 29 | def _bad_packer(obj): |
|
24 | 30 | raise TypeError("I don't work") |
|
25 | 31 | |
@@ -155,24 +161,6 b' class TestSession(SessionTestCase):' | |||
|
155 | 161 | t.wait(1) # this will raise |
|
156 | 162 | |
|
157 | 163 | |
|
158 | # def test_rekey(self): | |
|
159 | # """rekeying dict around json str keys""" | |
|
160 | # d = {'0': uuid.uuid4(), 0:uuid.uuid4()} | |
|
161 | # self.assertRaises(KeyError, ss.rekey, d) | |
|
162 | # | |
|
163 | # d = {'0': uuid.uuid4(), 1:uuid.uuid4(), 'asdf':uuid.uuid4()} | |
|
164 | # d2 = {0:d['0'],1:d[1],'asdf':d['asdf']} | |
|
165 | # rd = ss.rekey(d) | |
|
166 | # self.assertEqual(d2,rd) | |
|
167 | # | |
|
168 | # d = {'1.5':uuid.uuid4(),'1':uuid.uuid4()} | |
|
169 | # d2 = {1.5:d['1.5'],1:d['1']} | |
|
170 | # rd = ss.rekey(d) | |
|
171 | # self.assertEqual(d2,rd) | |
|
172 | # | |
|
173 | # d = {'1.0':uuid.uuid4(),'1':uuid.uuid4()} | |
|
174 | # self.assertRaises(KeyError, ss.rekey, d) | |
|
175 | # | |
|
176 | 164 | def test_unique_msg_ids(self): |
|
177 | 165 | """test that messages receive unique ids""" |
|
178 | 166 | ids = set() |
@@ -267,5 +255,35 b' class TestSession(SessionTestCase):' | |||
|
267 | 255 | |
|
268 | 256 | def test_bad_roundtrip(self): |
|
269 | 257 | with self.assertRaises(ValueError): |
|
270 |
session= |
|
|
258 | session = ss.Session(unpack=lambda b: 5) | |
|
259 | ||
|
260 | def _datetime_test(self, session): | |
|
261 | content = dict(t=datetime.now()) | |
|
262 | metadata = dict(t=datetime.now()) | |
|
263 | p = session.msg('msg') | |
|
264 | msg = session.msg('msg', content=content, metadata=metadata, parent=p['header']) | |
|
265 | smsg = session.serialize(msg) | |
|
266 | msg2 = session.unserialize(session.feed_identities(smsg)[1]) | |
|
267 | assert isinstance(msg2['header']['date'], datetime) | |
|
268 | self.assertEqual(msg['header'], msg2['header']) | |
|
269 | self.assertEqual(msg['parent_header'], msg2['parent_header']) | |
|
270 | self.assertEqual(msg['parent_header'], msg2['parent_header']) | |
|
271 | assert isinstance(msg['content']['t'], datetime) | |
|
272 | assert isinstance(msg['metadata']['t'], datetime) | |
|
273 | assert isinstance(msg2['content']['t'], string_types) | |
|
274 | assert isinstance(msg2['metadata']['t'], string_types) | |
|
275 | self.assertEqual(msg['content'], jsonutil.extract_dates(msg2['content'])) | |
|
276 | self.assertEqual(msg['content'], jsonutil.extract_dates(msg2['content'])) | |
|
277 | ||
|
278 | def test_datetimes(self): | |
|
279 | self._datetime_test(self.session) | |
|
280 | ||
|
281 | def test_datetimes_pickle(self): | |
|
282 | session = ss.Session(packer='pickle') | |
|
283 | self._datetime_test(session) | |
|
284 | ||
|
285 | @skipif(module_not_available('msgpack')) | |
|
286 | def test_datetimes_msgpack(self): | |
|
287 | session = ss.Session(packer='msgpack.packb', unpacker='msgpack.unpackb') | |
|
288 | self._datetime_test(session) | |
|
271 | 289 |
General Comments 0
You need to be logged in to leave comments.
Login now