def test_base_message(self): class _TestMsg(BaseMessage): Serializer = jsonapi @MessageField def none_field(self): return None @none_field.setter def none_field(self, val): pass @MessageField def test(self): return self._test @test.setter def test(self, val): self._test = val def finalize(self): self.test = 'test' class _TestLatentMsg(_TestMsg): @MessageField def latent_field(self): return self._latent_field @latent_field.setter def latent_field(self, val): self._latent_field = val msg = _TestMsg() with self.assertRaises(NotImplementedError): msg.reply() data = msg.dumps() self.assertEqual(data, jsonapi.dumps({'test': 'test'})) self.assertIsNone(msg.none_field) self.assertEqual(msg.test, 'test') msg.augment(msg) self.assertEqual(msg.test, 'test') self.assertTrue(msg.fullfills(msg)) self.assertTrue(msg.fullfills(_TestMsg)) self.assertTrue(msg.fullfills(BaseMessage)) jobj = jsonapi.loads(data) jobj['latent_field'] = 'test latent' msg_latent = _TestLatentMsg() msg.loads(jsonapi.dumps(jobj)) self.assertEqual(msg.test, 'test') msg_latent.augment(msg) self.assertEqual(msg_latent.latent_field, 'test latent') self.assertTrue(msg_latent.fullfills(_TestMsg)) self.assertTrue(msg_latent.fullfills(_TestLatentMsg)) self.assertFalse(msg.fullfills(_TestLatentMsg)) self.assertEqual(msg.Serializer, jsonapi) data = msg.dumps_custom(msgpack) self.assertEqual(msg.Serializer, jsonapi) self.assertEqual(data, msgpack.dumps({'test': 'test'})) msg.loads_custom(msgpack, data) self.assertEqual(msg.test, 'test') self.assertEqual(msg.Serializer, jsonapi)
def test_jsonapi(self): test = {'a': 1, 'b': 'c', 'c': 3.14159265359} json = jsonapi.dumps(test) obj = jsonapi.loads(json) self.assertEqual(obj, test)