def muxer_messages(mux): return [(m[0], m[1], m[2], (decode_amf(vb(m[3])) if m[1] in (chunks.MSG_COMMAND, chunks.MSG_DATA) else m[3]), m[4]) for m in mux.messages]
def muxer_messages(mux): return [ (m[0], m[1], m[2], (decode_amf(vb(m[3])) if m[1] in (chunks.MSG_COMMAND, chunks.MSG_DATA) else m[3]), m[4]) for m in mux.messages ]
def test_callRemote_disconnect(self): p, t, dmx, mux = self.build_proto() d = p.callRemote(1, 'echo', 'sing it back') self.assertEquals(len(mux.messages), 1) msg = mux.messages[0] self.assertEquals(msg[0:3] + msg[4:], (0, chunks.MSG_COMMAND, 1, False)) # can't rely on transaction number, so we skip it decoded = decode_amf(vb(msg[3])) self.assertEquals((decoded[0], decoded[2]), ('echo', 'sing it back')) p.connectionLost() self.assertFailure(d, error.ConnectionDone) return d
def test_callRemote_result(self): p, t, dmx, mux = self.build_proto() d = p.callRemote(1, 'echo', 'sing it back') self.assertEquals(len(mux.messages), 1) msg = mux.messages[0] self.assertEquals(msg[0:3] + msg[4:], (0, chunks.MSG_COMMAND, 1, False)) # can't rely on transaction number, so we skip it decoded = decode_amf(vb(msg[3])) self.assertEquals((decoded[0], decoded[2]), ('echo', 'sing it back')) dmx.inject(3, 0, const.RTMP_COMMAND, 1, encode_amf('_result', decoded[1], None, decoded[2])) d.addCallback(self.assertEquals, (None, 'sing it back')) return d
def test_callRemote_error(self): p, t, dmx, mux = self.build_proto() d = p.callRemote(1, 'echo', 'sing it back') self.assertEquals(len(mux.messages), 1) msg = mux.messages[0] self.assertEquals(msg[0:3] + msg[4:], (0, chunks.MSG_COMMAND, 1, False)) # can't rely on transaction number, so we skip it decoded = decode_amf(vb(msg[3])) self.assertEquals((decoded[0], decoded[2]), ('echo', 'sing it back')) err_info = Object(code='Failed', level='error', desc='no echo method') dmx.inject(3, 0, const.RTMP_COMMAND, 1, encode_amf('_error', decoded[1], None, err_info)) self.assertFailure(d, CommandResultError) d.addCallback(lambda r: self.assertEquals(r.args, (None, err_info))) return d