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)
Exemple #2
0
 def test_jsonapi(self):
     test = {'a': 1, 'b': 'c', 'c': 3.14159265359}
     json = jsonapi.dumps(test)
     obj = jsonapi.loads(json)
     self.assertEqual(obj, test)