Пример #1
0
def test_service_whitelist(nova):
    connection = ANY
    context = Mock()
    rpcproxy = MockRPCProxy(context_factory=lambda: context)
    rpcproxy.fallback_to_call = False

    with pytest.raises(RuntimeError):
        rpcproxy.service.controller()

    assert nova.call.call_count == 0

    rpcproxy.add_service_to_whitelist('service')

    rpcproxy.service.controller()

    nova.call.assert_called_once_with(
        connection, context, 'service',
        {'method': 'controller', 'args': {}},
        options=rpcproxy.call_options(),
        timeout=None)

    with pytest.raises(RuntimeError):
        rpcproxy.blacklisted_service.controller()

    rpcproxy.reset()
    rpcproxy.fallback_to_call = False

    with pytest.raises(RuntimeError):
        rpcproxy.service.controller()

    assert nova.call.call_count == 1
Пример #2
0
def test_add_call_matching():
    rpcproxy = MockRPCProxy()
    rpcproxy.fallback_to_call = False

    with pytest.raises(RuntimeError):
        rpcproxy.service.controller()

    response = Mock()
    rpcproxy.add_call_matching(
        'service', 'controller', {'key': 'value'}, response)

    assert rpcproxy._calls == [
        ('service', 'controller', {}),
    ]

    with pytest.raises(RuntimeError):
        rpcproxy.service.controller()

    assert rpcproxy.service.controller(key='value') == response

    assert rpcproxy._calls == [
        ('service', 'controller', {}),
        ('service', 'controller', {}),
        ('service', 'controller', {'key': 'value'}),
    ]

    with pytest.raises(RuntimeError):
        rpcproxy.service.other_controller()

    assert rpcproxy._calls == [
        ('service', 'controller', {}),
        ('service', 'controller', {}),
        ('service', 'controller', {'key': 'value'}),
        ('service', 'other_controller', {}),
    ]

    rpcproxy.reset()
    rpcproxy.fallback_to_call = False

    assert rpcproxy._calls == []

    with pytest.raises(RuntimeError):
        rpcproxy.service.controller(key='value')
Пример #3
0
def test_fallback_to_call():
    rpcproxy = MockRPCProxy()
    assert rpcproxy.fallback_to_call is True  # default
    rpcproxy.fallback_to_call = False
    assert rpcproxy.fallback_to_call is False