def test_group_delete(self): header = self.headers["test4"] profile_ids, non_profile_ids = self.get_profile_ids(header) groups = Helpers.get_request(f"/groups/?profile_id={profile_ids[0]}", header=header) group_ids = [] for group in groups[1]: if group["admin"]: group_ids.append(group["groups"]["group_id"]) non_group_ids = [i for i in range(1, 11) if i not in group_ids] endpoint1 = f"/groups/{group_ids[0]}?profile_id={profile_ids[0]}" endpoint2 = f"/groups/{non_group_ids[0]}?profile_id={profile_ids[0]}" endpoint3 = f"/groups/{group_ids[0]}?profile_id={non_profile_ids[0]}" response, data = Helpers.delete_request(endpoint1, header=header) response2, data2 = Helpers.delete_request(endpoint2, header=header) response3, data3 = Helpers.delete_request(endpoint3, header=header) self.assertEqual(response.status_code, 200) self.assertIsInstance(data, dict) self.assertEqual(response2.status_code, 401) self.assertIsNone(data2) self.assertEqual(response3.status_code, 404) self.assertIsNone(data3)
def test_remove_content(self): header = self.headers["test5"] endpoint1, endpoint2 = self.generate_profile_endpoints(header) endpoint1 = endpoint1 + "/unrecommend" endpoint2 = endpoint2 + "/unrecommend" unrecommended, available_content = self.get_unrecommended_content( endpoint1, header) body1 = {"content_id": random.choice(unrecommended)} body2 = {"content_id": random.choice(available_content)} response, data = Helpers.delete_request(endpoint1, header=header, body=body1) response2, data2 = Helpers.delete_request(endpoint2, header=header, body=body1) response3, data3 = Helpers.delete_request(endpoint1, header=header, body=body2) self.assertEqual(response.status_code, 200) self.assertEqual(len(data), 1) self.assertEqual(response2.status_code, 404) self.assertIsNone(data2) self.assertEqual(response3.status_code, 404) self.assertIsNone(data3)
def test_remove_member(self): header = self.headers["test2"] profile_id_search = self.get_profile_ids(header) selected_profile_id = random.choice(profile_id_search[0]) group = GroupMembers.query.filter_by(profile_id=selected_profile_id, admin=True).first() group_id = group.group_id non_group_ids = [i for i in range(1, 11) if i != group_id] group_members_search = GroupMembers.query.filter_by(group_id=group_id, admin=False) member_ids = [] for group in group_members_search: member_ids.append(group.profile_id) non_member_ids = [i for i in range(1, 11) if i not in member_ids] endpoint1 = f"/groups/{random.choice(non_group_ids)}/remove_member" endpoint2 = f"/groups/{group_id}/remove_member" body1 = { "admin_id": f"{selected_profile_id}", "member_id": f"{random.choice(member_ids)}" } body2 = { "admin_id": f"{random.choice(member_ids)}", "member_id": f"{selected_profile_id}" } body3 = { "admin_id": f"{selected_profile_id}", "member_id": f"{random.choice(non_member_ids)}" } response, data = Helpers.delete_request(endpoint1, header=header, body=body1) response2, data2 = Helpers.delete_request(endpoint2, header=header, body=body2) response3, data3 = Helpers.delete_request(endpoint2, header=header, body=body3) response4, data4 = Helpers.delete_request(endpoint2, header=header, body=body1) self.assertTrue(response.status_code in [401, 404]) self.assertIsNone(data) self.assertTrue(response2.status_code in [401, 404]) self.assertIsNone(data2) self.assertEqual(response3.status_code, 404) self.assertIsNone(data3) self.assertEqual(response4.status_code, 200) self.assertEqual(data4["status"], "removed from group")
def test_delete_profile(self): header = self.headers["test3"] endpoint1, endpoint2 = self.generate_profile_endpoints(header) response, data = Helpers.delete_request(endpoint1, header=header) response2, data2 = Helpers.delete_request(endpoint2, header=header) self.assertEqual(response.status_code, 200) self.assertEqual(response2.status_code, 404) self.assertEqual(data["user"]["user_id"], 3) self.assertIsNone(data2)
def test_remove_content(self): header = self.headers["test4"] profile_ids, non_profile_ids = self.get_profile_ids(header) group_search = GroupMembers.query.filter_by(profile_id=profile_ids[0]) group_ids = [] for group in group_search: group_ids.append(group.groups.group_id) non_group_ids = [i for i in range(1, 11) if i not in group_ids] group_content_ids = [] group_content_search = Group.query.get(group_ids[0]) for content in group_content_search.content: group_content_ids.append(content.content_id) non_group_content_ids = [ i for i in range(1, 31) if i not in group_content_ids ] endpoint1 = f"/groups/{group_ids[0]}/content?profile_id={profile_ids[0]}" # noqa: E501 endpoint2 = f"/groups/{non_group_ids[0]}/content?profile_id={profile_ids[0]}" # noqa: E501 body1 = {"content_id": f"{non_group_content_ids[0]}"} body2 = {"content_id": f"{group_content_ids[0]}"} body3 = {"content_id": "31"} response, data = Helpers.delete_request(endpoint1, header=header, body=body1) response2, data2 = Helpers.delete_request(endpoint2, header=header, body=body2) response3, data3 = Helpers.delete_request(endpoint1, header=header, body=body3) response4, data4 = Helpers.delete_request(endpoint1, header=header, body=body2) data4_content = [] for content in data4["content"]: data4_content.append(content["content_id"]) self.assertEqual(response.status_code, 404) self.assertIsNone(data) self.assertEqual(response2.status_code, 401) self.assertIsNone(data2) self.assertEqual(response3.status_code, 404) self.assertIsNone(data3) self.assertEqual(response4.status_code, 200) self.assertTrue(group_content_ids[0] not in data4_content)
def test_delete_content(self): selected_content = random.randrange(1, 31) endpoint1 = f"/admin/content/{selected_content}" endpoint2 = "/admin/content/31" header = self.headers["Admin2"] response, data = Helpers.delete_request(endpoint1, header=header) response2, data2 = Helpers.delete_request(endpoint2, header=header) self.assertEqual(response.status_code, 200) self.assertEqual(data["content_id"], selected_content) self.assertEqual(response2.status_code, 404) self.assertIsNone(data2)
def test_delete_user(self): endpoint = "/users/" header = self.headers["test5"] before_delete = Helpers.get_request(endpoint, header=header) delete = Helpers.delete_request(endpoint, header=header) after_delete = Helpers.get_request(endpoint, header=header) delete2 = Helpers.delete_request(endpoint, header=header) self.assertEqual(before_delete[0].status_code, 200) self.assertEqual(before_delete[1]["user_id"], 5) self.assertEqual(delete[0].status_code, 200) self.assertEqual(delete[1]["user_id"], 5) self.assertEqual(after_delete[0].status_code, 404) self.assertIsNone(after_delete[1]) self.assertEqual(delete2[0].status_code, 404)
def test_unjoin_group(self): header = self.headers["test1"] profile_id_search = self.get_profile_ids(header) selected_profile_id = random.choice(profile_id_search[0]) selected_non_profile_id = random.choice(profile_id_search[1]) group_endpoint = f"/groups/?profile_id={selected_profile_id}" groups = [] group_search = Helpers.get_request(group_endpoint, header=header) for group in group_search[1]: groups.append(group["groups"]["group_id"]) non_groups = [i for i in range(1, 11) if i not in groups] body1 = {"profile_id": f"{selected_profile_id}"} body2 = {"profile_id": f"{selected_non_profile_id}"} endpoint1 = f"/groups/{groups[0]}/unjoin" endpoint2 = f"/groups/{non_groups[0]}/unjoin" response, data = Helpers.delete_request(endpoint1, header=header, body=body1) response2, data2 = Helpers.delete_request(endpoint2, header=header, body=body1) response3, data3 = Helpers.delete_request(endpoint1, header=header, body=body2) self.assertEqual(response.status_code, 200) self.assertEqual(data["profile_id"], selected_profile_id) self.assertEqual(data["group_id"], groups[0]) self.assertEqual(response2.status_code, 401) self.assertIsNone(data2) self.assertEqual(response3.status_code, 404) self.assertIsNone(data3)