##// END OF EJS Templates
restore msg_id/msg_type aliases in top level of msg dict...
MinRK -
Show More
@@ -357,7 +357,10 b' class Session(Configurable):'
357 format, which is a list of message parts.
357 format, which is a list of message parts.
358 """
358 """
359 msg = {}
359 msg = {}
360 msg['header'] = self.msg_header(msg_type) if header is None else header
360 header = self.msg_header(msg_type) if header is None else header
361 msg['header'] = header
362 msg['msg_id'] = header['msg_id']
363 msg['msg_type'] = header['msg_type']
361 msg['parent_header'] = {} if parent is None else extract_header(parent)
364 msg['parent_header'] = {} if parent is None else extract_header(parent)
362 msg['content'] = {} if content is None else content
365 msg['content'] = {} if content is None else content
363 sub = {} if subheader is None else subheader
366 sub = {} if subheader is None else subheader
@@ -669,7 +672,10 b' class Session(Configurable):'
669 raise ValueError("Invalid Signature: %r"%signature)
672 raise ValueError("Invalid Signature: %r"%signature)
670 if not len(msg_list) >= minlen:
673 if not len(msg_list) >= minlen:
671 raise TypeError("malformed message, must have at least %i elements"%minlen)
674 raise TypeError("malformed message, must have at least %i elements"%minlen)
672 message['header'] = self.unpack(msg_list[1])
675 header = self.unpack(msg_list[1])
676 message['header'] = header
677 message['msg_id'] = header['msg_id']
678 message['msg_type'] = header['msg_type']
673 message['parent_header'] = self.unpack(msg_list[2])
679 message['parent_header'] = self.unpack(msg_list[2])
674 if content:
680 if content:
675 message['content'] = self.unpack(msg_list[3])
681 message['content'] = self.unpack(msg_list[3])
@@ -47,13 +47,16 b' class TestSession(SessionTestCase):'
47 def test_msg(self):
47 def test_msg(self):
48 """message format"""
48 """message format"""
49 msg = self.session.msg('execute')
49 msg = self.session.msg('execute')
50 thekeys = set('header parent_header content'.split())
50 thekeys = set('header parent_header content msg_type msg_id'.split())
51 s = set(msg.keys())
51 s = set(msg.keys())
52 self.assertEquals(s, thekeys)
52 self.assertEquals(s, thekeys)
53 self.assertTrue(isinstance(msg['content'],dict))
53 self.assertTrue(isinstance(msg['content'],dict))
54 self.assertTrue(isinstance(msg['header'],dict))
54 self.assertTrue(isinstance(msg['header'],dict))
55 self.assertTrue(isinstance(msg['parent_header'],dict))
55 self.assertTrue(isinstance(msg['parent_header'],dict))
56 self.assertTrue(isinstance(msg['msg_id'],str))
57 self.assertTrue(isinstance(msg['msg_type'],str))
56 self.assertEquals(msg['header']['msg_type'], 'execute')
58 self.assertEquals(msg['header']['msg_type'], 'execute')
59 self.assertEquals(msg['msg_type'], 'execute')
57
60
58 def test_serialize(self):
61 def test_serialize(self):
59 msg = self.session.msg('execute',content=dict(a=10))
62 msg = self.session.msg('execute',content=dict(a=10))
@@ -61,6 +64,8 b' class TestSession(SessionTestCase):'
61 ident, msg_list = self.session.feed_identities(msg_list)
64 ident, msg_list = self.session.feed_identities(msg_list)
62 new_msg = self.session.unserialize(msg_list)
65 new_msg = self.session.unserialize(msg_list)
63 self.assertEquals(ident[0], b'foo')
66 self.assertEquals(ident[0], b'foo')
67 self.assertEquals(new_msg['msg_id'],msg['msg_id'])
68 self.assertEquals(new_msg['msg_type'],msg['msg_type'])
64 self.assertEquals(new_msg['header'],msg['header'])
69 self.assertEquals(new_msg['header'],msg['header'])
65 self.assertEquals(new_msg['content'],msg['content'])
70 self.assertEquals(new_msg['content'],msg['content'])
66 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
71 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
@@ -73,6 +78,8 b' class TestSession(SessionTestCase):'
73 ident, msg_list = self.session.feed_identities(socket.data)
78 ident, msg_list = self.session.feed_identities(socket.data)
74 new_msg = self.session.unserialize(msg_list)
79 new_msg = self.session.unserialize(msg_list)
75 self.assertEquals(ident[0], b'foo')
80 self.assertEquals(ident[0], b'foo')
81 self.assertEquals(new_msg['msg_id'],msg['msg_id'])
82 self.assertEquals(new_msg['msg_type'],msg['msg_type'])
76 self.assertEquals(new_msg['header'],msg['header'])
83 self.assertEquals(new_msg['header'],msg['header'])
77 self.assertEquals(new_msg['content'],msg['content'])
84 self.assertEquals(new_msg['content'],msg['content'])
78 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
85 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
@@ -89,6 +96,8 b' class TestSession(SessionTestCase):'
89 ident, msg_list = self.session.feed_identities(socket.data)
96 ident, msg_list = self.session.feed_identities(socket.data)
90 new_msg = self.session.unserialize(msg_list)
97 new_msg = self.session.unserialize(msg_list)
91 self.assertEquals(ident[0], b'foo')
98 self.assertEquals(ident[0], b'foo')
99 self.assertEquals(new_msg['msg_id'],msg['msg_id'])
100 self.assertEquals(new_msg['msg_type'],msg['msg_type'])
92 self.assertEquals(new_msg['header'],msg['header'])
101 self.assertEquals(new_msg['header'],msg['header'])
93 self.assertEquals(new_msg['content'],msg['content'])
102 self.assertEquals(new_msg['content'],msg['content'])
94 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
103 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
@@ -99,6 +108,8 b' class TestSession(SessionTestCase):'
99 self.session.send(socket, msg, ident=b'foo', buffers=[b'bar'])
108 self.session.send(socket, msg, ident=b'foo', buffers=[b'bar'])
100 ident, new_msg = self.session.recv(socket)
109 ident, new_msg = self.session.recv(socket)
101 self.assertEquals(ident[0], b'foo')
110 self.assertEquals(ident[0], b'foo')
111 self.assertEquals(new_msg['msg_id'],msg['msg_id'])
112 self.assertEquals(new_msg['msg_type'],msg['msg_type'])
102 self.assertEquals(new_msg['header'],msg['header'])
113 self.assertEquals(new_msg['header'],msg['header'])
103 self.assertEquals(new_msg['content'],msg['content'])
114 self.assertEquals(new_msg['content'],msg['content'])
104 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
115 self.assertEquals(new_msg['parent_header'],msg['parent_header'])
@@ -108,6 +108,10 b' generic structure::'
108 # All recognized message type strings are listed below.
108 # All recognized message type strings are listed below.
109 'msg_type' : str,
109 'msg_type' : str,
110 },
110 },
111 # The msg's unique identifier and type are stored in the header, but
112 # are also accessible at the top-level for convenience.
113 'msg_id' : uuid,
114 'msg_type' : str,
111
115
112 # In a chain of messages, the header from the parent is copied so that
116 # In a chain of messages, the header from the parent is copied so that
113 # clients can track where messages come from.
117 # clients can track where messages come from.
General Comments 0
You need to be logged in to leave comments. Login now