def test_contains(self): ci = ConsumableIter([1, 2, 3, 4, 5]) assert 1 in ci assert 5 in ci ci.consume() assert 1 not in ci # already consumed assert 5 in ci
def test_consume(self): ci = ConsumableIter([1, 2, 3]) with pytest.raises(ValueError): ci.consume(None) ci = ConsumableIter([1, 2, 3]) with pytest.raises(ValueError): ci.consume(-1) ci = ConsumableIter([1, 2, 3]) with pytest.raises(ValueError): ci.consume(100) ci = ConsumableIter([1, 2, 3]) ci.consume(1) with pytest.raises(ValueError): ci.consume(3) ci = ConsumableIter([1, 2, 3]) assert ci.consume(0) is None assert ci.consume(1) == 1 assert ci.consume(1) == 2 assert ci.consume(1) == 3 assert ci.remaining == 0 assert not ci.has_more ci = ConsumableIter([1, 2, 3]) assert ci.consume(3) == [1, 2, 3] assert ci.remaining == 0 assert not ci.has_more
def test_consume_empty(self): ci = ConsumableIter([]) with pytest.raises(ValueError): ci.consume(1)
def test_current_and_next_beyond_end(self): ci = ConsumableIter([1]) ci.consume() assert ci.current is None assert ci.next is None