import urllib3 import uuid from faker import Faker from urllib.parse import urljoin def approve_approval_request(requests_session, server, approval_id, headers): return requests_session.post( urljoin(server, "/api/v3/approval_request/{}/approve/".format(approval_id)), data={"comment": "r+"}, headers=headers, ) def create_approval_request(requests_session, server, latest_revision_id, headers): return requests_session.post( urljoin(server, "/api/v3/recipe_revision/{}/request_approval/".format(latest_revision_id)), headers=headers, ) def create_new_user(requests_session, server, headers): # Get a list of groups and grab the ID of the first one response = requests_session.get(urljoin(server, "/api/v3/group/"), headers=headers) group_id = response.json()["results"][0]["id"] group_name = response.json()["results"][0]["name"] fake = Faker() # Create a user, assigning them to the group we obtained user_data = { "first_name": fake.first_name(), "last_name": fake.last_name(), "email": fake.company_email(), "groups": {"id": group_id, "name": group_name}, } response = requests_session.post( urljoin(server, "/api/v3/user/"), headers=headers, data=user_data ) return { "id": response.json()["id"], "first_name": response.json()["first_name"], "last_name": response.json()["last_name"], "group_id": group_id, } def enable_recipe(requests_session, server, recipe_id, headers): return requests_session.post( urljoin(server, "/api/v3/recipe/{}/enable/".format(recipe_id)), headers=headers ) def new_recipe(requests_session, action_id, server, headers): urllib3.disable_warnings() # Create a recipe recipe_data = { "action_id": action_id, "arguments": '{"learnMoreMessage":"This field may not be blank.","learnMoreUrl":"This field may not be blank.","message":"This field may not be blank.","postAnswerUrl":"This field may not be blank.","surveyId":"' + str(uuid.uuid4()) + '","thanksMessage":"This field may not be blank."}', "name": "test recipe", "extra_filter_expression": "counter == 0", "enabled": "false", } response = requests_session.post( urljoin(server, "/api/v3/recipe/"), data=recipe_data, headers=headers ) data = response.json() return {"id": data["id"], "latest_revision_id": data["latest_revision"]["id"]}