def test_block_after_validity_period(self):
        id_batch = _IdBatch(-1, -2, 2)
        block = _Block(id_batch, 1)

        time.sleep(0.5)

        self.assertTrueEventually(lambda: block.next_id() is None)
    def test_block_after_validity_period(self):
        id_batch = _IdBatch(-1, -2, 2)
        block = _Block(id_batch, 0.1)

        time.sleep(0.5)

        self.assertIsNone(block.next_id())
    def test_block_with_batch_exhaustion(self):
        id_batch = _IdBatch(100, 10000, 0)
        block = _Block(id_batch, 1000)

        self.assertIsNone(block.next_id())
    def test_block(self):
        id_batch = _IdBatch(1, 2, 3)
        block = _Block(id_batch, 0)

        self.assertIsNotNone(block.next_id())