Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions pages/brainup_api_page.py
Original file line number Diff line number Diff line change
@@ -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
16 changes: 8 additions & 8 deletions pages/speech_exercises_page_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()}'):
Expand All @@ -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}'):
Expand All @@ -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}'):
Expand Down Expand Up @@ -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()}'):
Expand All @@ -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}'):
Expand All @@ -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'])
Expand Down
17 changes: 4 additions & 13 deletions tests/registration_page_test.py
Original file line number Diff line number Diff line change
@@ -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')
Expand All @@ -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,
Expand Down