def test_reset_all_results(instance_creation_teacher, instance_creation_student): homework1 = instance_creation_teacher.create_homework("Read docs", 1) homework2 = instance_creation_teacher.create_homework("Read docs 2", 2) instance_creation_teacher.check_homework( HomeworkResult(instance_creation_student, homework1, "solution", 1)) instance_creation_teacher.check_homework( HomeworkResult(instance_creation_student, homework2, "solution", 2)) instance_creation_teacher.reset_results() assert instance_creation_teacher.homework_done == {}
def test_create_homework_result_from_not_a_homework(test_student, date_01_jan_2020): with unittest.mock.patch("datetime.datetime") as fake_datetime: fake_datetime.now.return_value = date_01_jan_2020 with pytest.raises(TypeError, match="You gave not a Homework object"): HomeworkResult(test_student, "", "Some solution")
def test_homework_result(instance_creation_student, instance_creation_teacher): homework = instance_creation_teacher.create_homework("Read docs", 0) homework_result = HomeworkResult(instance_creation_student, homework, "I have done this hw", 1) assert homework_result.author is instance_creation_student assert homework_result.homework is homework assert homework_result.solution == "I have done this hw" assert homework_result.created == 1
def test_check_homework_returns_true_on_right_homework(test_student, date_01_jan_2020): with unittest.mock.patch("datetime.datetime") as fake_datetime: fake_datetime.now.return_value = date_01_jan_2020 teacher = Teacher("John", "Doe") hw = Homework("Some task", 10) hw_result = HomeworkResult(test_student, hw, "Looong solution") assert teacher.check_homework(hw_result)
def test_check_homework( instance_creation_student, instance_creation_teacher, data: str, expected_result: bool, ): homework = instance_creation_teacher.create_homework("Read docs", 5) homework_result = HomeworkResult(instance_creation_student, homework, data, 5) assert instance_creation_teacher.check_homework( homework_result) is expected_result
def test_homework_done_dict_contains_unique(instance_creation_teacher, instance_creation_student): homework = instance_creation_teacher.create_homework("Read docs", 1) homework_result = HomeworkResult(instance_creation_student, homework, "I have done this hw", 1) instance_creation_teacher.check_homework(homework_result) new_teacher = Teacher("Vasily", "Pupkin") new_teacher.check_homework(homework_result) assert instance_creation_teacher.homework_done == new_teacher.homework_done
def test_homeworks_added_to_homework_done(test_student, date_01_jan_2020): with unittest.mock.patch("datetime.datetime") as fake_datetime: fake_datetime.now.return_value = date_01_jan_2020 teacher = Teacher("John", "Doe") homework_done_size_before = len(teacher.homework_done) hw = Homework("Some other task", 10) hw_result = HomeworkResult(test_student, hw, "Long solution") teacher.check_homework(hw_result) homework_done_size_after = len(teacher.homework_done) assert homework_done_size_after - homework_done_size_before == 1 assert hw_result in Teacher.homework_done[hw]
def test_homework_result_with_error(instance_creation_student): with pytest.raises(TypeError, match="You gave a not Homework object"): HomeworkResult(instance_creation_student, "not_a_homework", "solution", 0)
def test_check_homework_returns_false_on_poor_homework(test_student): teacher = Teacher("John", "Doe") hw = Homework("Some task", 10) hw_result = HomeworkResult(test_student, hw, "sltn") assert not teacher.check_homework(hw_result)