def test_close_twice(self): # If a queue it called twice, it must not crash. q = ClosableDeferredQueue() q.close("testing") self.assertEqual(q.closed, "testing") q.close("testing") self.assertEqual(q.closed, "testing")
def test_close(self): # Verify that the queue can be closed. q = ClosableDeferredQueue() q.close("testing") self.assertEqual(q.closed, "testing") self.assertEqual(q.waiting, []) self.assertEqual(q.pending, [])
def test_close_waiting(self): # Verify that the deferred waiting for new data are errbacked when the # queue is closed. q = ClosableDeferredQueue() d = q.get() q.close(RuntimeError("testing")) self.assertTrue(q.closed) self.assertEqual(q.waiting, []) self.assertEqual(q.pending, []) return self.assertFailure(d, RuntimeError)