def testSerializableEqual(self): testobj1 = _RPCTestClass() testobj2 = _RPCTestClass() self.assertEqual(testobj1, testobj2) self.assertFalse(testobj1 != testobj2) decoded1 = rpc.rpc_decode(_RPCTestClass, rpc.rpc_encode(testobj1)) decoded2 = rpc.rpc_decode(_RPCTestClass, rpc.rpc_encode(testobj2)) self.assertEqual(decoded1, decoded2) self.assertFalse(decoded1 != decoded2)
def testCardRPC(self): card = Card(common.HEART, 5) encoded = rpc.rpc_encode(card) self.assertFalse(isinstance(encoded, common.Card)) decoded = rpc.rpc_decode(common.Card, encoded) self.assert_(isinstance(decoded, common.Card)) self.assertEqual(card, decoded)
def testDecodeAttr(self): testobj = _RPCTestClass() encoded = rpc.rpc_encode(testobj) self.assertEqual(encoded, {"a": 1, "b": "2"}) decoded = _RPCTestClass() decoded.rpc_decode_attr(encoded, "b") self.assertEqual(decoded.b, "2")
def testMessage(self): e = events.MessageEvent('from', 'lorem ipsum') e2 = rpc.rpc_decode(events.Event, rpc.rpc_encode(e)) self.assert_(isinstance(e2, events.MessageEvent)) self.assertEqual(e.type, e2.type) self.assertEqual(e.sender, e2.sender) self.assertEqual(e.message, e2.message)
def testSuitRPC(self): heart = common.HEART encoded = rpc.rpc_encode(heart) decoded = rpc.rpc_decode(common.Suit, encoded) self.assert_(isinstance(decoded, common.Suit)) self.assertEqual(heart.value, decoded.value) self.assertEqual(heart.name, decoded.name)
def testGameStateRPC(self): gs = common.GameState() gs.table.append(Card(common.HEART, 5)) encoded = rpc.rpc_encode(gs) gs2 = rpc.rpc_decode(common.GameState, encoded) self.assert_(isinstance(gs2, common.GameState)) self.assert_(isinstance(gs2.table, gs.table.__class__)) self.assertEqual(len(gs2.table), len(gs.table))
def testSerializeSimple(self): testobj = _RPCTestClass() encoded = rpc.rpc_encode(testobj) self.assertEqual(encoded, {"a": 1, "b": "2"}) # change something encoded["a"] = 2 decoded = rpc.rpc_decode(_RPCTestClass, encoded) self.assert_(isinstance(decoded, _RPCTestClass)) self.assertEqual(decoded.a, 2)
def testStateChanged(self): cls = events.StateChangedEvent game_state = common.GameState() game_state.state = common.GameState.VOTING e = cls(game_state) self.assert_(e.game_state is not None) e2 = rpc.rpc_decode(events.Event, rpc.rpc_encode(e)) self.assert_(isinstance(e2, cls)) self.assertEqual(e.type, e2.type) self.assertEqual(e.game_state, e2.game_state)
def testEventList(self): el = events.EventList() el.append(events.MessageEvent('a', 'b')) el.append(events.MessageEvent('c', 'd')) num = len(el) self.assertEqual(num, 2) el2 = rpc.rpc_decode(events.EventList, rpc.rpc_encode(el)) self.assert_(isinstance(el2, events.EventList)) self.assertEqual(len(el2), num) for i in range(0, num): self.assertEqual(el[i], el2[i])
def testCardPlayed(self): cls = events.CardPlayedEvent plr = players.Player('Seppo') card = common.Card(common.HEART, 5) e = cls(plr, card) e2 = rpc.rpc_decode(events.Event, rpc.rpc_encode(e)) self.assert_(isinstance(e2, cls)) self.assertEqual(e.type, e2.type) self.assertEqual(e.player.player_name, e2.player.player_name) self.assertEqual(e.card, e2.card) self.assertEqual(e2.game_state, None)
def testSerializeCustom(self): testobj = _CustomClass() encoded = rpc.rpc_encode(testobj) self.assertEqual(encoded, "hilipati") decoded = rpc.rpc_decode(_CustomClass, encoded) self.assertEqual(decoded, "joop")
def _encoded_player(self, name='mörkö'): player = Player(name) encoded = rpc.rpc_encode(player) return encoded
def testEventListEmpty(self): el = events.EventList() self.assertEqual(len(el), 0) el2 = rpc.rpc_decode(events.EventList, rpc.rpc_encode(el)) self.assert_(isinstance(el2, events.EventList)) self.assertEqual(len(el2), 0)
def testMessageEmpty(self): cls = events.MessageEvent e = cls() e2 = rpc.rpc_decode(events.Event, rpc.rpc_encode(e)) self.assert_(isinstance(e2, cls)) self.assertEqual(e.type, e2.type)
def testEvent(self, cls=None): cls = events.Event e = cls() e2 = rpc.rpc_decode(events.Event, rpc.rpc_encode(e)) self.assert_(isinstance(e2, cls)) self.assertEqual(e.type, e2.type)