def test_service_whitelist(nova): connection = ANY context = Mock() context_factory = lambda: context rpcproxy = MockRPCProxy(context_factory=context_factory) 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
def test_service_whitelist(nova): connection = ANY context = Mock() context_factory = lambda: context rpcproxy = MockRPCProxy( context_factory=context_factory) 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
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')
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')