def test_student_getters_setters():
    student = Student("first", "last", datetime.datetime(2020, 1, 1), 1234)
    
    student.set_first_name("John")
    assert student.get_first_name() == "John"

    student.set_last_name("Smith")
    assert student.get_last_name() == "Smith"

    student.set_student_number(4321)
    assert student.get_student_number() == 4321
def test_set_student_number_raises_error_with_invalid_value():
    student = Student("first", "last", datetime.datetime(2020, 1, 1), 1234)
    
    with pytest.raises(TypeError):
        student.set_student_number("abc123")