def METHOD_NAME(self):
    vms = make_vms(num=3)
    conn = FakeConnection(vms=vms)
    cache = FakeStatsCache()
    sampler = sampling.VMBulkstatsMonitor(conn, conn.getVMs, cache)
    with conn.stuck(self.TIMEOUT * 2):
        with cache.await_completion(self.TIMEOUT):
            self.exc.dispatch(sampler, self.CALL_TIMEOUT)
            vms['1'].ready = False
            self.exc.dispatch(sampler, self.CALL_TIMEOUT)
        # now we succesfully waited_for the second (slow) call:
        # call #1 (fast) recorded, not yet completed
        # call #2 (slow) recorded, completed, waited
        # now we need to be able to wait for the still pending call,
        # hence we re-prepare to wait
        cache.clear()
    # so we check indeed we recorded the right calls.
    # the call #1 (fast) may complete any moment, asynchronously
    expected = ['getAllDomainStats', 'domainListGetStats']
    self.assertCallSequence(conn.__calls__, expected)
    # now we make sure the call #1 (fast) is completed.
    # we expect NOT to wait here, timeout added just in case
    assert(cache.sync.wait(self.TIMEOUT))
    # reset fake environment to pristine state
    vms['1'].ready = True
    sampler._skip_doms.clear()
    expected.append('getAllDomainStats')
    with cache.await_completion(self.TIMEOUT):
        self.exc.dispatch(sampler, self.CALL_TIMEOUT)
    self.assertCallSequence(conn.__calls__, expected)