def test_access_admin_not_owner_else_member(user_1, user_2, user_3): """Testing whether a member can change someone else's permissions to member """ admin_userpermission_change(user_1["token"], user_3["u_id"], OWNER) with pytest.raises(AccessError): admin_userpermission_change(user_2["token"], user_3["u_id"], MEMBER) clear()
def test_input_admin_valid_u_id(user_1): """u_id does not refer to a valid user """ with pytest.raises(InputError): admin_userpermission_change(user_1["token"], user_1["u_id"] + 1, OWNER) with pytest.raises(InputError): admin_userpermission_change(user_1["token"], user_1["u_id"] - 1, MEMBER) clear()
def test_output_admin_owner_change_first_owner_to_owner(user_1, user_2, public_channel_1): """Test whether another flockr owner successfully change another the first flockr owner to an owner (essentially does nothing as permission has not changed) """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) admin_userpermission_change(user_2["token"], user_1["u_id"], OWNER) channel.channel_join(user_2['token'], public_channel_1['channel_id']) clear()
def test_output_admin_owner_change_to_member(user_1, user_2, private_channel_1): """Test whether the an owner can set themselves as an member """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) admin_userpermission_change(user_2["token"], user_2["u_id"], MEMBER) with pytest.raises(AccessError): channel.channel_join(user_2['token'], private_channel_1['channel_id']) clear()
def test_access_admin_not_owner_own(user_1, user_2): """Testing whether a member can change their own permissions """ with pytest.raises(AccessError): admin_userpermission_change(user_2["token"], user_2["u_id"], OWNER) with pytest.raises(AccessError): admin_userpermission_change(user_2["token"], user_2["u_id"], MEMBER) clear()
def test_input_admin_owner_change_first_owner_to_member(user_1, user_2): """Test whether the another flockr owner cannot change the first flockr owner to a member """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) with pytest.raises(InputError): admin_userpermission_change(user_2["token"], user_1["u_id"], MEMBER) clear()
def test_output_admin_member_change_to_member(user_1, user_2, private_channel_1): """Test whether a member is changed to a member, the function will do nothing. """ with pytest.raises(AccessError): channel.channel_join(user_2['token'], private_channel_1['channel_id']) admin_userpermission_change(user_1["token"], user_2["u_id"], MEMBER) with pytest.raises(AccessError): channel.channel_join(user_2['token'], private_channel_1['channel_id']) clear()
def test_output_admin_owner_change_to_owner(user_1, user_2, public_channel_1): """Test whether an owner is changed to an owner, the function will do nothing. """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) channel.channel_join(user_2['token'], public_channel_1['channel_id']) channel.channel_leave(user_2['token'], public_channel_1['channel_id']) admin_userpermission_change(user_2["token"], user_2["u_id"], OWNER) channel.channel_join(user_2['token'], public_channel_1['channel_id']) clear()
def test_output_admin_owner_change_member_to_owner(user_1, user_2): """Test whether a member has become a flockr owner by joining a private channel """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) channel_info = channels.channels_create(user_1['token'], "Group 1", False) # Owner can join any channels including private # Testing user, with now as flockr owner to join private channel channel.channel_join(user_2['token'], channel_info['channel_id']) clear()
def test_output_admin_owner_change_owner_to_member_logout(user_1, user_2, private_channel_1): """Test whether permission change carry through after logout """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) admin_userpermission_change(user_1["token"], user_2["u_id"], MEMBER) auth.auth_logout(user_2['token']) user_2 = auth.auth_login('*****@*****.**', 'password') with pytest.raises(AccessError): channel.channel_join(user_2['token'], private_channel_1['channel_id']) clear()
def test_output_admin_owner_change_member_to_owner_logout(user_1, user_2, public_channel_1): """Testing whether the permission change carry through after user logout and logs back in. """ admin_userpermission_change(user_1["token"], user_2["u_id"], OWNER) auth.auth_logout(user_2["token"]) user_2 = auth.auth_login('*****@*****.**', 'password') # Owner can join any channels including private # Testing user, with now as flockr owner to join private channel channel.channel_join(user_2['token'], public_channel_1['channel_id']) clear()
def test_input_admin_valid_permission_id(user_1): """permission_id does not refer to a value permission """ with pytest.raises(InputError): admin_userpermission_change(user_1["token"], user_1["u_id"], -1) with pytest.raises(InputError): admin_userpermission_change(user_1["token"], user_1["u_id"], 0) with pytest.raises(InputError): admin_userpermission_change(user_1["token"], user_1["u_id"], 2) clear()
def test_access_admin_valid_token(user_1): """Test if token is invalid does not refer to a valid user """ auth.auth_logout(user_1['token']) with pytest.raises(AccessError): admin_userpermission_change(user_1["token"], user_1["u_id"], OWNER) with pytest.raises(AccessError): admin_userpermission_change(user_1["token"], user_1["u_id"], MEMBER) with pytest.raises(AccessError): admin_userpermission_change("INVALID", user_1["u_id"], MEMBER) clear()
def route_admin_userpermission_change(): """Given a User by their user ID, set their permissions to new permissions described by permission_id Args: token (string) u_id (int) permission_id (int) """ payload = request.get_json() u_id = int(payload['u_id']) permission_id = int(payload['permission_id']) try: return dumps( admin_userpermission_change(payload['token'], u_id, permission_id)) except (InputError, AccessError) as e: return e
def test_input_admin_first_owner_changes_to_member(user_1): """Test whether the first flockr owner cannot change themselves to a member """ with pytest.raises(InputError): admin_userpermission_change(user_1["token"], user_1["u_id"], MEMBER) clear()