def METHOD_NAME(sreq, echo_server):
    """
    Test SREQ Timeouts
    """
    # client-side timeout
    start = time.time()
    # This is a try/except instead of an assertRaises because of a possible
    # subtle bug in zmq wherein a timeout=0 actually executes a single poll
    # before the timeout is reached.
    log.info("Sending tries=0, timeout=0")
    try:
        sreq.send("clear", "foo", tries=0, timeout=0)
    except salt.exceptions.SaltReqTimeoutError:
        pass
    assert time.time() - start < 1  # ensure we didn't wait
    # server-side timeout
    log.info("Sending tries=1, timeout=1")
    start = time.time()
    with pytest.raises(salt.exceptions.SaltReqTimeoutError):
        sreq.send("clear", {"sleep": 2}, tries=1, timeout=1)
    assert time.time() - start >= 1  # ensure we actually tried once (1s)
    # server-side timeout with retries
    log.info("Sending tries=2, timeout=1")
    start = time.time()
    with pytest.raises(salt.exceptions.SaltReqTimeoutError):
        sreq.send("clear", {"sleep": 2}, tries=2, timeout=1)
    assert time.time() - start >= 2  # ensure we actually tried twice (2s)
    # test a regular send afterwards (to make sure sockets aren't in a twist
    log.info("Sending regular send")
    assert sreq.send("clear", "foo") == {"enc": "clear", "load": "foo"}