当前位置: 首页>>代码示例>>Python>>正文


Python RabbitMQCrashStorage.new_crashes方法代码示例

本文整理汇总了Python中socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage.new_crashes方法的典型用法代码示例。如果您正苦于以下问题:Python RabbitMQCrashStorage.new_crashes方法的具体用法?Python RabbitMQCrashStorage.new_crashes怎么用?Python RabbitMQCrashStorage.new_crashes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage的用法示例。


在下文中一共展示了RabbitMQCrashStorage.new_crashes方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_new_crash_reprocessing_queue

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash_reprocessing_queue(self):
        """ Tests queue with reprocessing, standard items; no priority items
        """
        config = self._setup_config()
        crash_store = RabbitMQCrashStorage(config)
        crash_store.rabbitmq.config.standard_queue_name = 'socorro.normal'
        crash_store.rabbitmq.config.reprocessing_queue_name = \
            'socorro.reprocessing'
        crash_store.rabbitmq.config.priority_queue_name = 'socorro.priority'

        test_queue = [
            (None, None, None),
            ('1', '1', 'normal_crash_id'),
            (None, None, None),
            ('1', '1', 'reprocessing_crash_id'),
            (None, None, None),
        ]

        def basic_get(queue='socorro.priority'):
            if len(test_queue) == 0:
                return (None, None, None)
            if queue == 'socorro.priority':
                return test_queue.pop()
            elif queue == 'socorro.reprocessing':
                return test_queue.pop()
            elif queue == 'socorro.normal':
                return test_queue.pop()

        crash_store.rabbitmq.connection.return_value.channel.basic_get = \
            MagicMock(side_effect=basic_get)

        expected = ['normal_crash_id', 'reprocessing_crash_id']
        for result in crash_store.new_crashes():
            eq_(expected.pop(), result)
开发者ID:FrostburnStudios,项目名称:socorro,代码行数:36,代码来源:test_crashstorage.py

示例2: test_new_crash_reprocessing_queue

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash_reprocessing_queue(self):
        """ Tests queue with reprocessing, standard items; no priority items
        """
        config = self._setup_config()
        config.transaction_executor_class = TransactionExecutor
        crash_store = RabbitMQCrashStorage(config)
        crash_store.rabbitmq.config.standard_queue_name = "socorro.normal"
        crash_store.rabbitmq.config.reprocessing_queue_name = "socorro.reprocessing"
        crash_store.rabbitmq.config.priority_queue_name = "socorro.priority"

        test_queue = [
            (None, None, None),
            ("1", "1", "normal_crash_id"),
            (None, None, None),
            ("1", "1", "reprocessing_crash_id"),
            (None, None, None),
        ]

        def basic_get(queue):
            if len(test_queue) == 0:
                raise StopIteration
            return test_queue.pop()

        crash_store.rabbitmq.return_value.__enter__.return_value.channel.basic_get = MagicMock(side_effect=basic_get)

        expected = ["normal_crash_id", "reprocessing_crash_id"]
        for result in crash_store.new_crashes():
            eq_(expected.pop(), result)
开发者ID:snorp,项目名称:socorro,代码行数:30,代码来源:test_crashstorage.py

示例3: test_new_crash_duplicate_discovered

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash_duplicate_discovered(self):
        """ Tests queue with standard queue items only
        """
        config = self._setup_config()
        config.transaction_executor_class = TransactionExecutor
        crash_store = RabbitMQCrashStorage(config)
        crash_store.rabbitmq.config.standard_queue_name = "socorro.normal"
        crash_store.rabbitmq.config.reprocessing_queue_name = "socorro.reprocessing"
        crash_store.rabbitmq.config.priority_queue_name = "socorro.priority"

        faked_methodframe = DotDict()
        faked_methodframe.delivery_tag = "delivery_tag"
        test_queue = [(None, None, None), (faked_methodframe, "1", "normal_crash_id"), (None, None, None)]

        def basic_get(queue="socorro.priority"):
            if len(test_queue) == 0:
                raise StopIteration
            return test_queue.pop()

        crash_store.rabbitmq.return_value.__enter__.return_value.channel.basic_get = MagicMock(side_effect=basic_get)

        transaction_connection = crash_store.transaction.db_conn_context_source.return_value.__enter__.return_value

        # load the cache as if this crash had alredy been seen
        crash_store.acknowledgement_token_cache["normal_crash_id"] = faked_methodframe

        for result in crash_store.new_crashes():
            # new crash should be suppressed
            eq_(None, result)

        # we should ack the new crash even though we did use it for processing
        transaction_connection.channel.basic_ack.assert_called_with(delivery_tag=faked_methodframe.delivery_tag)
开发者ID:snorp,项目名称:socorro,代码行数:34,代码来源:test_crashstorage.py

示例4: test_new_crash_with_fail_retry_then_permanent_fail

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash_with_fail_retry_then_permanent_fail(self):
        config = self._setup_config()
        config.transaction_executor_class = TransactionExecutorWithInfiniteBackoff
        crash_store = RabbitMQCrashStorage(config)

        class MyException(Exception):
            pass

        iterable = [("1", "1", "crash_id"), MyException(), timeout(), ("2", "2", "other_id")]

        def an_iterator(queue):
            item = iterable.pop()
            if isinstance(item, Exception):
                raise item
            return item

        crash_store.rabbitmq.operational_exceptions = (timeout,)
        crash_store.rabbitmq.return_value.__enter__.return_value.channel.basic_get = MagicMock(side_effect=an_iterator)

        expected = ("other_id",)
        count = 0
        try:
            for expected, result in zip(expected, crash_store.new_crashes()):
                count += 1
                if count == 1:
                    eq_(expected, result)
                eq_(count, 1, "looped too far")
        except MyException:
            eq_(count, 1)
开发者ID:snorp,项目名称:socorro,代码行数:31,代码来源:test_crashstorage.py

示例5: test_new_crash_standard_queue

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash_standard_queue(self):
        """ Tests queue with standard queue items only
        """
        config = self._setup_config()
        config.transaction_executor_class = TransactionExecutor
        crash_store = RabbitMQCrashStorage(config)
        crash_store.rabbitmq.config.standard_queue_name = 'socorro.normal'
        crash_store.rabbitmq.config.reprocessing_queue_name = \
            'socorro.reprocessing'
        crash_store.rabbitmq.config.priority_queue_name = 'socorro.priority'

        test_queue = [
            ('1', '1', 'normal_crash_id'),
            (None, None, None),
            (None, None, None),
        ]

        def basic_get(queue):
            if len(test_queue) == 0:
                raise StopIteration
            if queue == 'socorro.priority':
                return (None, None, None)
            elif queue == 'socorro.reprocessing':
                return (None, None, None)
            elif queue == 'socorro.normal':
                return test_queue.pop()

        crash_store.rabbitmq.return_value.__enter__.return_value  \
            .channel.basic_get = MagicMock(side_effect=basic_get)

        expected = ['normal_crash_id']
        for result in crash_store.new_crashes():
            assert expected.pop() == result
开发者ID:stephendonner,项目名称:socorro,代码行数:35,代码来源:test_crashstorage.py

示例6: test_new_crash_with_fail_retry

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash_with_fail_retry(self):
        config = self._setup_config()
        config.transaction_executor_class = \
            TransactionExecutorWithInfiniteBackoff
        crash_store = RabbitMQCrashStorage(config)

        iterable = [
            ('1', '1', 'crash_id'),
            timeout(),
            timeout(),
            ('2', '2', 'other_id')
        ]

        def an_iterator(queue):
            item = iterable.pop()
            if isinstance(item, Exception):
                raise item
            return item

        crash_store.rabbitmq.operational_exceptions = (
            timeout,
        )
        crash_store.rabbitmq.return_value.__enter__.return_value  \
            .channel.basic_get = MagicMock(side_effect=an_iterator)

        expected = ('other_id', 'crash_id', )
        for expected, result in zip(expected, crash_store.new_crashes()):
            assert expected == result
开发者ID:stephendonner,项目名称:socorro,代码行数:30,代码来源:test_crashstorage.py

示例7: test_new_crash

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash(self):
        config = self._setup_config()
        crash_store = RabbitMQCrashStorage(config)

        iterable = (('1', '1', 'crash_id'),)
        crash_store.rabbitmq.connection.return_value.channel.basic_get = \
            MagicMock(side_effect=iterable)

        expected = 'crash_id'
        for result in crash_store.new_crashes():
            eq_(expected, result)
开发者ID:FrostburnStudios,项目名称:socorro,代码行数:13,代码来源:test_crashstorage.py

示例8: test_new_crash

# 需要导入模块: from socorro.external.rabbitmq.crashstorage import RabbitMQCrashStorage [as 别名]
# 或者: from socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage import new_crashes [as 别名]
    def test_new_crash(self):
        config = self._setup_config()
        config.transaction_executor_class = TransactionExecutorWithInfiniteBackoff
        crash_store = RabbitMQCrashStorage(config)

        iterable = [StopIteration(), ("1", "1", "crash_id")]

        def iter_the_iterable(queue):
            item = iterable.pop()
            if isinstance(item, Exception):
                raise item
            return item

        crash_store.rabbitmq.return_value.__enter__.return_value.channel.basic_get = MagicMock(
            side_effect=iter_the_iterable
        )

        expected = "crash_id"
        for result in crash_store.new_crashes():
            eq_(expected, result)
开发者ID:snorp,项目名称:socorro,代码行数:22,代码来源:test_crashstorage.py


注:本文中的socorro.external.rabbitmq.crashstorage.RabbitMQCrashStorage.new_crashes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。