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
2 changes: 1 addition & 1 deletion elements/dropdown_element.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import allure

from elements.base_element import BaseElement
from utils.Locators import GeneralLocators
from utils.locators import GeneralLocators

class DropdownElement(BaseElement):
def __init__(self, page, locator, name):
Expand Down
2 changes: 1 addition & 1 deletion pages/exercises_page.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from elements.base_element import BaseElement
from pages.base_page import BasePage
from utils.Locators import ExercisesPageLocators
from utils.locators import ExercisesPageLocators

class ExercisePage(BasePage):
def __init__(self, page):
Expand Down
2 changes: 1 addition & 1 deletion pages/home_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from elements.input_element import InputElement
from pages.base_page import BasePage
from elements.base_element import BaseElement
from utils.Locators import HomePageLocators
from utils.locators import HomePageLocators

class HomePage(BasePage):
def __init__(self, page):
Expand Down
2 changes: 1 addition & 1 deletion pages/navigation_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from elements.base_element import BaseElement
from pages.base_page import BasePage
from utils.Locators import NavigationLocators
from utils.locators import NavigationLocators


class NavigationPage(BasePage):
Expand Down
2 changes: 1 addition & 1 deletion pages/tutorial_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from elements.button_element import ButtonElement
from pages.base_page import BasePage
from elements.base_element import BaseElement
from utils.Locators import TutorialPageLocators
from utils.locators import TutorialPageLocators

class TutorialPage(BasePage):
def __init__(self, page):
Expand Down
24 changes: 12 additions & 12 deletions tests/test_home.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import random

import allure
from utils.Assertions import Assertions
import utils.Constants as Constants
from utils.Random import Random
import pytest

from utils.assertions import Assertions
import utils.constants as Constants
from utils.random import Random
from utils.data_generators import HomeTestsDataGenerator

@allure.title("Home page transitions")
def test_home_check_transitions(home_page, tutorial_page):
Expand All @@ -24,18 +25,17 @@ def test_home_check_sections(home_page):
Assertions.assert_all_elements_are_visible(block_elements)

@allure.title("Home page verify search tutorial input")
def test_home_verify_search(home_page, tutorial_page):
tutorial_to_search = Constants.Tutorials.PYTHON
tutorial_to_select = Constants.Titles.JAVA_TUTORIAL
@pytest.mark.parametrize("text_to_search, text_to_select, title_text", list(HomeTestsDataGenerator.verify_search_generator()))
def test_home_verify_search(home_page, tutorial_page, text_to_search, text_to_select, title_text):
invalid_tutorial_to_search = Random.get_random_letter_string(10)
options_found = home_page.enter_tutorial_and_get_all_options(tutorial_to_search)
Assertions.assert_text_contain_all_values(tutorial_to_search, options_found)
options_found = home_page.enter_tutorial_and_get_all_options(text_to_search)
Assertions.assert_text_contain_all_values_ignoring_case(text_to_search, options_found)
options_found = home_page.enter_tutorial_and_get_all_options(invalid_tutorial_to_search)
Assertions.assert_count(options_found, 1)
Assertions.assert_is_visible(home_page.no_tutorials_found)
home_page.enter_tutorial_and_select_option(tutorial_to_select)
home_page.enter_tutorial_and_select_option(text_to_select)
Assertions.assert_is_visible(tutorial_page.tutorial_title)
Assertions.assert_text_equals_ignoring_case(tutorial_page.tutorial_title, Constants.Titles.JAVA_TUTORIAL)
Assertions.assert_text_equals_ignoring_case(tutorial_page.tutorial_title, title_text)



Expand Down
4 changes: 2 additions & 2 deletions tests/test_tutorial.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import allure

from utils import Constants
from utils.Assertions import Assertions
from utils import constants
from utils.assertions import Assertions

@allure.description("Check tutorial titles changing")
def test_tutorial_verify_titles(home_page, tutorial_page):
Expand Down
6 changes: 6 additions & 0 deletions utils/Assertions.py → utils/assertions.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@ def assert_text_contain_all_values(text: str, texts_list: list[str]):
for t in texts_list:
assert text in t

@staticmethod
@allure.step("Check text contains all values from list ignoring case")
def assert_text_contain_all_values_ignoring_case(text: str, texts_list: list[str]):
for t in texts_list:
assert text.lower() in t.lower()

@staticmethod
@allure.step("Check element count")
def assert_count(elements, count: int):
Expand Down
2 changes: 0 additions & 2 deletions utils/Constants.py → utils/constants.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import allure

class Titles:
HTML_TUTORIAL = "HTML Tutorial"
JAVA_TUTORIAL = "JAVA Tutorial"
Expand Down
7 changes: 7 additions & 0 deletions utils/data_generators.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

class HomeTestsDataGenerator:
@staticmethod
def verify_search_generator():
yield "Java", "Java Array Tutorial", "Java Arrays"
yield "Java", "JavaScript Array Tutorial", "JavaScript Arrays"
yield "Python", "Python Arrays", "Python Arrays"
File renamed without changes.
File renamed without changes.