Esempio n. 1
0
	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
Esempio n. 2
0
	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
Esempio n. 3
0
	def test_consume_empty(self):
		ci = ConsumableIter([])

		with pytest.raises(ValueError):
			ci.consume(1)
Esempio n. 4
0
	def test_current_and_next_beyond_end(self):
		ci = ConsumableIter([1])
		ci.consume()
		assert ci.current is None
		assert ci.next is None