コード例 #1
0
ファイル: processor.py プロジェクト: nybx/ledgerx-python
    def handle(self, msg):
        """\
        Handle a message and call the appropriate method.

        :param msg: A parsed message object.
        :returns: Whether the call was successful.
        """
        try:
            handler = getattr(self,
                    'handle_v' + msg.mversion.replace('.', '_'), None)
            if not handler:
                raise LXError("unimplemented version processor")

            prev_item = IDStoreItem()
            if msg.mid in settings.ID_STORE:
                prev_item = settings.ID_STORE[msg.mid]
            settings.ID_STORE[msg.mid] = IDStoreItem(msg, prev_item.callback)

            try:
                prev_item.callback(msg, prev_item.msg)
            except:
                logger.exception("error occurred in callback")

            return handler(msg, prev_item.msg)
        except:
            logger.exception("error occurred in message processor")
            return False
コード例 #2
0
ファイル: test_store.py プロジェクト: nybx/ledgerx-python
    def test_id_store_item(self):
        item = IDStoreItem()
        self.assertIsNone(item.msg)
        self.assertTrue(callable(item.callback))

        with self.assertRaises(ValueError):
            item.callback = ''
        item.callback = lambda x, y: None
        item.msg = ''
        self.assertEqual(item.msg, '')