def test_wait_until_empty_on_clear(self): q = Queue(hub=self.hub) q.append('an item') q.append('another item') timeout = 0.5 self.hub.call_later(greennet.greenlet(q.clear), timeout) start = time.time() q.wait_until_empty() duration = time.time() - start self.assert_(duration < timeout + IMMEDIATE_THRESHOLD and duration > timeout - IMMEDIATE_THRESHOLD)