Esempio n. 1
0
async def test_on_service_message_for_other_consumers(loop):
    with patch('worker.actions.make_service_command', Mock(side_effect=coroutine(lambda msg: "response"))):
        app = BaseApplication('app', loop=loop, CONFIG='config.tests')
        app.platforms = {"ubuntu-14.04-x64": 1}
        msg = ujson.dumps({
            "command": "bla bla",
            "platform": "ubuntu-14.04-x64",
            "vmmaster_session": 1
        })

        qc = AsyncQueueConsumer(app)

        # mocks
        service_channel = Mock(channel_id=1)
        qc.get_session_channel_by_id = Mock(return_value=None)
        qc.get_platform_channel_by_platform = Mock(return_value=None)
        service_channel.basic_client_nack = Mock(side_effect=coroutine(
            lambda delivery_tag, multiple, requeue: None
        ))

        await qc.on_service_message(
            service_channel, msg, Mock(delivery_tag='dtag1.2134234'), Mock(correlation_id='6ivtyubhnj')
        )
        assert service_channel.basic_client_nack.called
        assert app.platforms["ubuntu-14.04-x64"] == 1
Esempio n. 2
0
async def test_get_platform_channel_by_platform(loop):
    app = BaseApplication('app', loop=loop, CONFIG='config.tests')
    qc = AsyncQueueConsumer(app)

    # mocks
    platforms_channel = Mock(channel_id=1)
    qc.channels[platforms_channel.channel_id] = {
        "mute": False, "type": "platforms", "channel": platforms_channel, "platform": "ubuntu-14.04-x64"
    }

    channel = qc.get_platform_channel_by_platform("ubuntu-14.04-x64")
    assert channel.channel_id == platforms_channel.channel_id
Esempio n. 3
0
async def test_on_service_message_with_channel_unmuting(loop):
    with patch('worker.actions.make_service_command', Mock(side_effect=coroutine(lambda msg: "response"))):
        app = BaseApplication('app', loop=loop, CONFIG='config.tests')
        app.platforms = {"ubuntu-14.04-x64": 0}
        msg = ujson.dumps({
            "command": "SESSION_CLOSING",
            "platform": "ubuntu-14.04-x64",
            "vmmaster_session": 1
        })

        qc = AsyncQueueConsumer(app)

        # mocks
        service_channel = Mock(channel_id=1)
        session_channel = Mock(channel_id=2)
        platforms_channel = Mock(channel_id=3)
        qc.get_session_channel_by_id = Mock(return_value=session_channel)
        qc.get_platform_channel_by_platform = Mock(return_value=platforms_channel)
        qc.messages["sessions"] = {1: {}}
        qc.channels[service_channel.channel_id] = \
            {"mute": False, "type": "services", "channel": service_channel, "consumer_tag": "efwef1234r"}
        qc.channels[session_channel.channel_id] = \
            {"mute": False, "type": "sessions", "channel": session_channel, "consumer_tag": "efwef1234r"}
        qc.channels[platforms_channel.channel_id] = \
            {"mute": True, "type": "platforms", "channel": platforms_channel, "consumer_tag": "efwef1234r"}
        service_channel.basic_client_ack = Mock(side_effect=coroutine(
            lambda delivery_tag: None
        ))
        qc.delete_queue = Mock(side_effect=coroutine(
            lambda _channel, queue_name: None
        ))
        qc.mute_channel = Mock(side_effect=coroutine(
            lambda _channel, _ct: None
        ))
        qc.unmute_channel = Mock(side_effect=coroutine(
            lambda _channel, _ct, pl: None
        ))

        await qc.on_service_message(
            service_channel, msg, Mock(delivery_tag='dtag1.2134234'), Mock(correlation_id='6ivtyubhnj')
        )
        assert service_channel.basic_client_ack.called
        assert qc.mute_channel.called
        assert qc.delete_queue.called
        assert app.platforms["ubuntu-14.04-x64"] == 1