import pytest from grade_list import GradeList, Overflow @pytest.fixture def testee() -> GradeList: return GradeList() def test_max_grade_count(testee): assert testee.get_max_grade_count() == 5 def test_list_is_empty(testee): assert testee.get_current_grade_count() == 0 def test_list_is_not_empty(testee): testee.add_grade(5.0) assert testee.get_current_grade_count() == 1 def test_list_is_full(testee): for i in range(testee.get_max_grade_count()): testee.add_grade(5.0) with pytest.raises(Overflow): testee.add_grade(5.0) assert testee.get_current_grade_count() == 5 def test_add_valid(testee): for i in range(testee.get_max_grade_count()): testee.add_grade(5.0) def test_add_invalid(testee): for i in range(testee.get_max_grade_count()): testee.add_grade(5.0) pytest.raises(Overflow, testee.add_grade, 5.0) def test_get_notenwert_1(testee): pytest.raises(IndexError, testee.get_grade, -1) def test_get_notenwert_2(testee): for i in range(testee.get_max_grade_count()): testee.add_grade(5.0) assert testee.get_grade(0) == 5.0 assert testee.get_grade(4) == 5.0 def test_get_notenwert_3(testee): for i in range(testee.get_max_grade_count()): testee.add_grade(5.0) pytest.raises(IndexError, testee.get_grade, 5)