diff --git a/pages/brainup_api_page.py b/pages/brainup_api_page.py new file mode 100644 index 0000000000..696b292439 --- /dev/null +++ b/pages/brainup_api_page.py @@ -0,0 +1,27 @@ +import os +import allure +import requests +from dotenv import load_dotenv +from test_data.links import MainPageLinks as Links + +load_dotenv() + + +class BrainUPAPI: + + @staticmethod + @allure.step("Get user's token") + def get_user_token(user_email, user_password): + auth_url = os.environ["AUTH_URL"] + user = {"email": user_email, "password": user_password, "returnSecureToken": "true"} + response = requests.post(auth_url, user) + token = response.json()['idToken'] + return token + + @staticmethod + @allure.step('Delete authorised user') + def delete_authorised_user(user_email, user_token): + url = f'{Links.URL_MAIN_PAGE}{os.environ["DELETE_USER"]}{user_email}' + headers = {'Authorization': f'Bearer {user_token}'} + response = requests.delete(url=url, headers=headers) + return response.status_code diff --git a/pages/speech_exercises_page_api.py b/pages/speech_exercises_page_api.py index af5c655d67..68271cc4a4 100644 --- a/pages/speech_exercises_page_api.py +++ b/pages/speech_exercises_page_api.py @@ -30,14 +30,14 @@ class SpeechExercisesAPI(BasePage): def get_random_id_from_list_sub_group(card_id, seria_id): print('Card_id is:', card_id) print('Seria_id is:', seria_id) - list_cards_id = requests.get(f'{Links.URL_MAIN_PAGE}subgroups?seriesId={seria_id}', + list_cards_id = requests.get(f'{Links.URL_MAIN_PAGE}api/subgroups?seriesId={seria_id}', headers={'Content-Type': 'application/json', 'Authorization': 'Bearer {}'.format(id_token)}) with allure.step(f'Status code is: {list_cards_id.status_code}'): pass with allure.step( f'Send GET request with params: ' - f'{Links.URL_MAIN_PAGE}subgroups?seriesId={seria_id} ' + f'{Links.URL_MAIN_PAGE}api/subgroups?seriesId={seria_id}' f'headers="Content-Type": "application/json","Authorization": "Bearer": "{{id_token}}"'): pass with allure.step(f'Getting list of cards id: {list_cards_id.json()}'): @@ -53,7 +53,7 @@ def get_random_id_from_list_sub_group(card_id, seria_id): @staticmethod @allure.step('get_list_of_words_from_card') def get_list_of_words_from_card(card_id): - result_get = requests.get(f'{Links.URL_MAIN_PAGE}tasks/{str(card_id)}', + result_get = requests.get(f'{Links.URL_MAIN_PAGE}api/tasks/{str(card_id)}', headers={'Content-Type': 'application/json', 'Authorization': 'Bearer {}'.format(id_token)}) with allure.step(f'Status code is: {result_get.status_code}'): @@ -69,7 +69,7 @@ def get_list_of_words_from_card(card_id): @staticmethod @allure.step('get_list_of_words_from_card_group_words') def get_list_of_words_from_card_group_words(card_id): - result_get = requests.get(f'{Links.URL_MAIN_PAGE}tasks/{str(card_id)}', + result_get = requests.get(f'{Links.URL_MAIN_PAGE}api/tasks/{str(card_id)}', headers={'Content-Type': 'application/json', 'Authorization': 'Bearer {}'.format(id_token)}) with allure.step(f'Status code is: {result_get.status_code}'): @@ -124,14 +124,14 @@ def click_start_and_get_list_words_for_group_words_ru(self): def get_random_id_from_list_sub_group_default(card_id, seria_id): print('Card_id is:', card_id) print('Seria_id is:', seria_id) - list_cards_id = requests.get(f'{Links.URL_MAIN_PAGE}subgroups?seriesId={seria_id}', + list_cards_id = requests.get(f'{Links.URL_MAIN_PAGE}api/subgroups?seriesId={seria_id}', headers={'Content-Type': 'application/json', 'Authorization': 'Bearer {}'.format(id_token_default)}) with allure.step(f'Status code is: {list_cards_id.status_code}'): pass with allure.step( f'Send GET request with params: ' - f'{Links.URL_MAIN_PAGE}subgroups?seriesId={seria_id}' + f'{Links.URL_MAIN_PAGE}api/subgroups?seriesId={seria_id}' f'headers="Content-Type": "application/json","Authorization": "Bearer": "{{id_token_default}}"'): pass with allure.step(f'Getting list of cards id: {list_cards_id.json()}'): @@ -150,7 +150,7 @@ def get_random_id_from_list_sub_group_default(card_id, seria_id): @staticmethod @allure.step('get_list_of_words_from_card_default') def get_list_of_words_from_card_default(card_id): - result_post = requests.post(f'{Links.URL_MAIN_PAGE}tasks/{str(card_id)}', + result_post = requests.post(f'{Links.URL_MAIN_PAGE}api/tasks/{str(card_id)}', headers={'Content-Type': 'application/json', 'Authorization': 'Bearer {}'.format(id_token_default)}) with allure.step(f'Status code is: {result_post.status_code}'): @@ -166,7 +166,7 @@ def get_list_of_words_from_card_default(card_id): @staticmethod @allure.step('get_random_id_from_payloads') def get_random_id_from_payloads(payloads): - exercises = requests.post(f'{Links.URL_MAIN_PAGE}exercises/byIds', + exercises = requests.post(f'{Links.URL_MAIN_PAGE}api/exercises/byIds', headers={'Content-Type': 'application/json', 'Authorization': 'Bearer {}'.format(id_token_default)}, json=payloads) random_id = random.choice(exercises.json()['data']) diff --git a/tests/registration_page_test.py b/tests/registration_page_test.py index e6defb0611..313edad78e 100644 --- a/tests/registration_page_test.py +++ b/tests/registration_page_test.py @@ -1,21 +1,18 @@ import os import pytest -import requests from dotenv import load_dotenv import allure from selenium.common import TimeoutException from pages.profile_page import ProfilePage from pages.registration_page import RegistrationPage -from test_data.links import MainPageLinks from test_data.registration_data import Messages, Registration -from test_data.links import MainPageLinks as Links +from pages.brainup_api_page import BrainUPAPI load_dotenv() @allure.epic("Test Registration Page") class TestRegistrationPage: - urls = MainPageLinks msg = Messages @allure.title('Check registration with new email') @@ -37,15 +34,9 @@ def test_registration_with_new_email(self, main_page_open, driver): page.check_change_url() page = ProfilePage(driver) assert page.check_user_profile(), 'The user has not registered with a new email' - authorization_url = os.environ["AUTH_URL"] - user = {"email": new_email, "password": os.environ["PASSWORD"], "returnSecureToken": "true"} - response = requests.post(authorization_url, user) - token = response.json()['idToken'] - url = f'{Links.URL_MAIN_PAGE}{os.environ["DELETE_USER"]}{new_email}' - payload = {} - headers = {'Authorization': f'Bearer {token}'} - response = requests.request("DELETE", url=url, headers=headers, data=payload) - assert response.status_code == 200 + token = BrainUPAPI.get_user_token(new_email, os.environ["PASSWORD"]) + status_code = BrainUPAPI.delete_authorised_user(new_email, token) + assert status_code == 200, "The user has not been deleted" @pytest.mark.parametrize(Registration.test_data, Registration.DATA_REGISTRATION) def test_registration_negative(self, driver, main_page_open, title, first_name, birthday, email, password,