You can use

    with assert_raises(XBlockSaveError) as save_error:
        field_tester.save()
    
    assert_equals(len(save_error.saved_fields), 1)
    assert_equals(len(save_error.dirty_fields), 1)