def test_critical_component_should_raise_if_client_not_connected(
        requests_mock, client):
    config = Config('arch.test', 'a_cluster')
    config.set_critical()
    requests_mock.wait_time = 11
    client.run()

    with pytest.raises(RuntimeError):
        config.get("test")
def test_critical_component_should_still_work_if_cache_is_found(
        requests_mock, client, sleep_ops):
    config = Config('arch.test', 'a_cluster')
    config_component = config.client
    config.set_critical()
    client.run()
    config.get("test")
    assert not config_component.fail_mode

    sleep_ops.set_constant_sleep_time(0.1)
    requests_mock.stop_exception = socket.timeout
    assert client.is_disconnected.wait(3)
    assert not client.is_connected()

    config.get("test")
    assert not config_component.fail_mode