def METHOD_NAME(self, project, branch, make_user):
    user_allowed_to_push = make_user(AccessLevel.DEVELOPER)
    user_allowed_to_merge = make_user(AccessLevel.DEVELOPER)
    user_allowed_to_push_and_merge = make_user(AccessLevel.DEVELOPER)
    config_with_user_ids = f"""
    projects_and_groups:
      {project.path_with_namespace}:
        branches:
          {branch}:
            protected: true
            allowed_to_push:
              - user_id: {user_allowed_to_push.id}
              - access_level: {AccessLevel.NO_ACCESS.value}
              - user: {user_allowed_to_push_and_merge.username}
            allowed_to_merge:
              - access_level: {AccessLevel.DEVELOPER.value} 
              - user_id: {user_allowed_to_merge.id}
              - user: {user_allowed_to_push_and_merge.username}
    """
    run_gitlabform(config_with_user_ids, project)
    (
        push_access_levels,
        merge_access_levels,
        push_access_user_ids,
        merge_access_user_ids,
        _,
    ) = get_only_branch_access_levels(project, branch)
    assert push_access_levels == [AccessLevel.NO_ACCESS.value]
    assert merge_access_levels == [AccessLevel.DEVELOPER.value]
    assert push_access_user_ids == sorted(
        [
            user_allowed_to_push.id,
            user_allowed_to_push_and_merge.id,
        ]
    )
    assert merge_access_user_ids == sorted(
        [
            user_allowed_to_merge.id,
            user_allowed_to_push_and_merge.id,
        ]
    )