It's certainly a weird abstraction, but it seemed the sanest way to DRY so many similar tests. Perhaps it would be better if the signature was more descriptive:

    def can_access(self, request, test_detail=False, has_permission=False, is_curator=False):