diff --git a/English-exercises-AQA/.github/workflows/EnglishActions.yml b/English-exercises-AQA/.github/workflows/EnglishActions.yml new file mode 100644 index 0000000..68973dc --- /dev/null +++ b/English-exercises-AQA/.github/workflows/EnglishActions.yml @@ -0,0 +1,78 @@ +name: UI Tests + +on: workflow_dispatch + +jobs: + ui-tests: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install Chrome + run: sudo apt-get install google-chrome-stable + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Run tests + run: | + pytest -s -vv --alluredir=allure-results + + - name: Add allure information + working-directory: allure-results + if: always() + run: | + echo GIT_BRANCH=${{ github.head_ref || github.ref_name }} >> environment.properties + echo GIT_COMMIT_ID=${{ github.sha }} >> environment.properties + echo GIT_COMMIT_MESSAGE=$(git show -s --format=%s HEAD) >> environment.properties + echo GIT_COMMIT_AUTHOR_NAME=$(git show -s --format='%ae' HEAD) >> environment.properties + echo GIT_COMMIT_TIME=$(git show -s --format=%ci HEAD) >> environment.properties + echo CHROME_VERSION=$(google-chrome --product-version) >> environment.properties + + + + - name: Checkout (copy) gh-pages repository to GitHub runner + uses: actions/checkout@v2 + if: always() + with: + ref: gh-pages + path: ./.github/gh-pages + + + + + + - name: Copy history from gh-pages to allure-results + if: always() + run: | + sudo mkdir -p allure-results/history + sudo cp -R ./.github/gh-pages/history/* allure-results/history/ + + - name: Generate Allure report + if: always() + run: | + sudo docker-compose run regression /bin/sh -c "allure generate allure-results --clean -o allure-report" + + - name: Update Allure history + if: always() + run: | + sudo cp -R allure-report/history/* ./.github/gh-pages/history/ + + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@v4 + if: always() + with: + token: ${{ secrets.CI_TOKEN }} + branch: gh-pages + folder: allure-report + #clean: true diff --git a/English-exercises-AQA/.gitignore b/English-exercises-AQA/.gitignore new file mode 100644 index 0000000..fbd5903 --- /dev/null +++ b/English-exercises-AQA/.gitignore @@ -0,0 +1,3 @@ +.pytest_cache +.idea +venv diff --git a/English-exercises-AQA/Dockerfile b/English-exercises-AQA/Dockerfile new file mode 100644 index 0000000..c0d6a05 --- /dev/null +++ b/English-exercises-AQA/Dockerfile @@ -0,0 +1,28 @@ +FROM python:3.12.0a4-alpine3.17 +# update apk repo +RUN echo "https://dl-4.alpinelinux.org/alpine/v3.10/main" >> /etc/apk/repositories && \ + echo "https://dl-4.alpinelinux.org/alpine/v3.10/community" >> /etc/apk/repositories + +# install chromedriver +RUN apk update +RUN apk add --no-cache chromium chromium-chromedriver tzdata + +# Get all the prereqs +RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub +RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-2.30-r0.apk +RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-bin-2.30-r0.apk + +RUN apk update && \ + apk add openjdk11-jre curl tar && \ + curl -o allure-2.13.8.tgz -Ls https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.8/allure-commandline-2.13.8.tgz && \ + tar -zxvf allure-2.13.8.tgz -C /opt/ && \ + ln -s /opt/allure-2.13.8/bin/allure /usr/bin/allure && \ + rm allure-2.13.8.tgz + +WORKDIR /usr/workspace + +# Copy the dependencies file to the working directory +COPY ./requirements.txt /usr/workspace + +# Install Python dependencies +RUN pip3 install -r requirements.txt \ No newline at end of file diff --git a/English-exercises-AQA/README.md b/English-exercises-AQA/README.md new file mode 100644 index 0000000..c75d4bb --- /dev/null +++ b/English-exercises-AQA/README.md @@ -0,0 +1,16 @@ +# English-exercises-AQA +Tests for [English-exercises](https://github.com/Areso/English-exercises) + +Current allure-report here: [Allure-report](https://lambotik.github.io/English-exercises-AQA/#) + +While this for simple run, later I'll correct it. + +1 ```git clone https://github.com/lambotik/English-exercises-AQA.git``` + +2 ```cd English-exercises-AQA``` + +3 ```pip3 install -r requirements.txt``` + +4 ```pytest -s -vv --alluredir=allure-results``` + +5 ```allure serve allure-results``` diff --git a/English-exercises-AQA/docker-compose.yml b/English-exercises-AQA/docker-compose.yml new file mode 100644 index 0000000..dce901b --- /dev/null +++ b/English-exercises-AQA/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.7' + +services: + regression: + image: python:3.12.0a4-alpine3.17 + build: + context: . + dockerfile: Dockerfile + volumes: + - ./:/usr/workspace + command: /bin/sh -c "ls -la && pytest -sv --alluredir=allure-results" + working_dir: /usr/workspace + environment: + - LOGIN=${LOGIN} + - PASSWORD=${PASSWORD} \ No newline at end of file diff --git a/English-exercises-AQA/locators/main_page_locators.py b/English-exercises-AQA/locators/main_page_locators.py new file mode 100644 index 0000000..99e6a14 --- /dev/null +++ b/English-exercises-AQA/locators/main_page_locators.py @@ -0,0 +1,20 @@ +from selenium.webdriver.common.by import By + + +class PrepositionsLocators: + # Chapter 1 + AMOUNT_OF_CARDS = (By.XPATH, '//span[@id="spnTotal"]') + CURRENT_CARD_NUMBER = (By.XPATH, '//span[@id="spnCurPos"]') + QUESTION = (By.XPATH, '//div[@id="question"]') + LIST_OF_RADIO_BUTTONS = (By.XPATH, '// div[@id = "answer_radiobutton_div"] /input') + RADIO_BUTTON_ON = (By.XPATH, '//input[@value="on"]') + RADIO_BUTTON_AT = (By.XPATH, '//input[@value="at"]') + RADIO_BUTTON_IN = (By.XPATH, '//input[@value="in"]') + CORRECT_OR_WRONG = (By.XPATH, '//lbl[@id="resultLbl"] /span') + CHECK_ANSWER_BUTTON = (By.XPATH, '//button[@id="checkBtn"]') + SHOW_ANSWER_BUTTON = (By.XPATH, '//button[@id="showAnswerBtn"]') + NEXT_CARD_BUTTON = (By.XPATH, '//button[@id="nextBtn"]') + CORRECT_ANSWER_TEXT = (By.XPATH, '//lbl[@id="resultLbl"]') + + # Chapter 2 + INPUT_PLACE = (By.XPATH, '//input[@id="answer_text_field"]') diff --git a/English-exercises-AQA/pages/base_page.py b/English-exercises-AQA/pages/base_page.py new file mode 100644 index 0000000..d644a80 --- /dev/null +++ b/English-exercises-AQA/pages/base_page.py @@ -0,0 +1,170 @@ +import random + +import allure +from allure_commons.types import AttachmentType +from selenium.webdriver import Keys, ActionChains +from selenium.webdriver.support import expected_conditions as ec +from selenium.webdriver.support.ui import WebDriverWait as Wait + + +class BasePage: + + def __init__(self, driver, url): + self.driver = driver + self.url = url + self.timeout = 5 + + def get_current_url(self): + get_url = self.driver.current_url + print('Current url: ' + get_url) + + def open(self): + with allure.step(f'Open page: {self.url}'): + self.driver.get(self.url) + + def element_is_presence_and_clickable(self, locator): + with allure.step(f'Check element is visible and clickable: {locator}'): + return (Wait(self.driver, self.timeout).until(ec.visibility_of_element_located(locator), + message=f"Can't find element by locator {locator}") and + self.element_is_clickable(locator)) + + def element_is_visible(self, locator): + with allure.step(f'Check element is visible: {locator}'): + self.go_to_element(self.element_is_presence(locator)) + return Wait(self.driver, self.timeout).until(ec.visibility_of_element_located(locator), + message=f"Can't find element by locator {locator}") + + def elements_are_visible(self, locator): + with allure.step(f'Check elements are visible: {locator}'): + return Wait(self.driver, self.timeout).until(ec.visibility_of_all_elements_located(locator), + message=f"Can't find elements by locator {locator}") + + def element_is_presence(self, locator): + with allure.step(f'Check element is presence: {locator}'): + return Wait(self.driver, self.timeout).until(ec.presence_of_element_located(locator), + message=f"Can't find element by locator {locator}") + + def elements_are_presence(self, locator): + with allure.step(f'Check elements are presence: {locator}'): + return Wait(self.driver, self.timeout).until(ec.presence_of_all_elements_located(locator), + message=f"Can't find elements by locator {locator}") + + def elements_is_not_visible(self, locator): + with allure.step(f'Check elements is not visible: {locator}'): + return Wait(self.driver, self.timeout).until(ec.invisibility_of_element(locator), + message=f"Can't find element by locator {locator}") + + @allure.step('Check element is clickable') + def element_is_clickable(self, locator): + with allure.step(f'Check elements are clickable: {locator}'): + return Wait(self.driver, self.timeout).until(ec.element_to_be_clickable(locator), + message=f"Can't find element by locator {locator}") + + def go_to_element(self, element): + with allure.step(f'Go to element: {element}'): + return self.driver.execute_script("arguments[0].scrollIntoView({ block: 'center'});", element) + + def scroll_to_visible_element(self, locator): + with allure.step(f'Scroll to element: {locator}'): + self.go_to_element(self.element_is_presence(locator)) + return Wait(self.driver, self.timeout).until(ec.element_to_be_clickable(locator), + message=f"Can't find element by locator {locator}") + + @allure.step('Click enter to element') + def click_enter_to_element(self, locator): + allure.step(f'Click enter to {locator}') + Wait(self.driver, self.timeout).until(ec.element_to_be_clickable(locator(Keys.RETURN))) + + @allure.step('Remove footer') + def remove_footer(self): + self.driver.execute_script("document.getElementsByTagName('footer')[0].remove();") + print('\nRemove Footer') + + @allure.step('check_selected_radio_button') + def check_selected_radio_button(self, index): + result = self.driver.execute_script(f'return(document.getElementsByName("possibleAnswers")[{index}].checked)') + with allure.step(f'Check value of selected button: {result}'): + return result + + @allure.step('check_selected_radio_button') + def get_entered_value(self): + """This method returned entered value from input place""" + result = self.driver.execute_script(f'return(document.querySelector("#answer_text_field").value)') + with allure.step(f'Check value of selected button: {result}'): + return result + + """"Данный метод убирает рекламный банер""" + + @allure.step('Remove fixedban') + def remove_fixedban(self): + self.driver.execute_script("document.getElementById('fixedban').style.display = 'none'") + print('Remove Fixedban') + + @allure.step('Action double click') + def action_double_click(self, element): + with allure.step(f'Double click {element}'): + action = ActionChains(self.driver) + action.double_click(element).perform() + + @allure.step('Action right click') + def action_right_click(self, element): + with allure.step(f'Right click {element}'): + action = ActionChains(self.driver) + action.context_click(element).perform() + + @allure.step('Action one click') + def action_one_click(self, element): + action = ActionChains(self.driver) + action.click(element).perform() + + @allure.step('Go to a new tab') + def go_to_a_new_tab(self): + self.driver.switch_to.window(self.driver.window_handles[1]) + + @allure.step('Go to alert') + def go_to_alert(self): + return self.driver.switch_to.alert + + @allure.step('Go to frame') + def go_to_frame(self, element): + self.driver.switch_to.frame(element) + + @allure.step('Switch to default content') + def switch_to_default_content(self): + self.driver.switch_to.default_content() + + @allure.step('Random choice from elements list') + def random_choice_from_elements_list(self, elements_list_locator): + empty_list = [] + full_list = self.elements_are_presence(elements_list_locator) + for t in full_list: + empty_list.append(t.text) + return random.choice(full_list) + + @allure.step('Action drag and drop offset') + def action_drag_and_drop_offset(self, element, x_coord, y_coord): + action = ActionChains(self.driver) + action.drag_and_drop_by_offset(element, x_coord, y_coord) + action.perform() + + @allure.step('Action move to element') + def action_move_to_element(self, element): + with allure.step(f'Move to {element}'): + action = ActionChains(self.driver) + action.move_to_element(element) + action.perform() + + @allure.step('Action drag and drop element') + def action_drag_and_drop_element(self, what, where): + action = ActionChains(self.driver) + action.drag_and_drop(what, where) + action.perform() + + @allure.step('Attach screenshot') + def attach_screenshot(self, element): + """Create screenshot of current window and attach it in allure report + Args: + - file_name: str like 'Linkedin_button_not_found' + """ + element_name = ''.join(element) + allure.attach(self.driver.get_screenshot_as_png(), name=element_name, attachment_type=AttachmentType.PNG) diff --git a/English-exercises-AQA/pages/chapter1/prepositions/Prepositions.py b/English-exercises-AQA/pages/chapter1/prepositions/Prepositions.py new file mode 100644 index 0000000..71ca70d --- /dev/null +++ b/English-exercises-AQA/pages/chapter1/prepositions/Prepositions.py @@ -0,0 +1,150 @@ +import random + +import allure +from selenium.webdriver.common.by import By + +from locators.main_page_locators import PrepositionsLocators +from pages.base_page import BasePage + + +class PrepositionsPages(BasePage): + locators = PrepositionsLocators() + + def get_amount_of_cards(self): + amount = self.element_is_presence(self.locators.AMOUNT_OF_CARDS).text + assert amount.isdigit() + # print('Amount cards:', amount) + return int(amount) + + def get_current_card_number(self): + curd_number = int(self.element_is_presence(self.locators.CURRENT_CARD_NUMBER).text) + return curd_number + + def get_question_text(self): + question_text = self.element_is_presence(self.locators.QUESTION).text + return question_text + + def check_radio_buttons(self): + random_index = random.randint(0, len(self.elements_are_presence( + (By.XPATH, '//div[@id="answer_radiobutton_div"] /input'))) - 1) + selected_button = self.elements_are_presence(self.locators.LIST_OF_RADIO_BUTTONS)[random_index] + selected_button.click() + with allure.step(f"Customer selected: {selected_button.get_attribute('value')}."): + all_options = [value.get_attribute('value') for value + in self.elements_are_presence(self.locators.LIST_OF_RADIO_BUTTONS)] + # print('All options:', all_options) + selected_button_value = selected_button.get_attribute('value') + # print('Selected option:', selected_button_value) + """Or we can use after click selected_button.is_selected()""" + return selected_button_value, self.check_selected_radio_button(random_index) + + def check_answer(self): + self.element_is_presence_and_clickable(self.locators.CHECK_ANSWER_BUTTON).click() + answer = self.element_is_presence(self.locators.CORRECT_OR_WRONG).text + # print('Correct or wrong answer:', answer) + return answer + + def check_correct_answer(self): + show_answer = self.element_is_presence_and_clickable(self.locators.SHOW_ANSWER_BUTTON) + show_answer.click() + correct_answer = self.element_is_presence(self.locators.CORRECT_ANSWER_TEXT).text + # print(f'Correct answer: {correct_answer}') + return correct_answer + + def click_next_card(self): + button_next_card = self.element_is_presence_and_clickable(self.locators.NEXT_CARD_BUTTON) + button_next_card.click() + + # Methods + @staticmethod + def check_main_options(main_page): + """ + This method performs basic checks common to all cards. + This is the display of elements and the ability to click on buttons. + + :param main_page: current driver state + + amount_of_cards -> int &(show quantity of cards) + + question -> str &(current question text) + + button_value -> str &(value of selected button) + + result -> bool &(will check if the element is actually selected (True or False)) + + correct_or_wrong -> str &(Shows the response value) + + correct_answer -> str &(Shows correct answer) + + """ + amount_of_cards = main_page.get_amount_of_cards() + for i in range(amount_of_cards): + current_card_number = main_page.get_current_card_number() + with allure.step(f'\n{current_card_number}. Check card.'): + question = main_page.get_question_text() + with allure.step(f'Question: {question}'): + button_value, result = main_page.check_radio_buttons() + with allure.step(f'Customer selected: {button_value}'): + pass + with allure.step(f'\n\nValue of button is: {result}'): + pass + correct_or_wrong = main_page.check_answer() + correct_answer = main_page.check_correct_answer() + with allure.step(f'Should be: {correct_answer}'): + pass + # print(f'Should be: {correct_answer}') + with allure.step(f'Result should be:{correct_answer}'): + assert result is True, 'Clicked button is not selected' + try: + assert button_value == correct_answer and correct_or_wrong == 'CORRECT' + # print('\n', '#' * 10, 'Correct answer!', '#' * 10, '\n') + # print('#' * 10, "It's right answer.", '#' * 10) + # print('\n') + except Exception as ex: + print(ex, '\n', '#' * 10, 'Wrong answer!', '#' * 10) + main_page.click_next_card() + with allure.step('*' * 90): + pass + + @staticmethod + def check_questions_no_repeated(main_page): + """ + This method goes through all the cards and creates two dictionaries; + all questions are added to one, only if they have not been repeated before. + At the end of the cycle, the dictionaries are compared. + :param main_page: current driver state + + :return: dict1, dict2 + """ + amount_of_cards = main_page.get_amount_of_cards() + data1 = {} + data2 = {} + for _ in range(amount_of_cards): + current_card_number = main_page.get_current_card_number() + question = main_page.get_question_text() + data1[current_card_number] = question + if question not in list(data2.values()): + data2[current_card_number] = question + main_page.click_next_card() + # pprint(data1) + # pprint(data2) + return data1, data2 + + @staticmethod + def check_args_is_not_presence(main_page): + """ + This method checks that the card is not empty and > + This method goes through all the cards and checks whether the (args) value + from the devtools has reached the client. + :param main_page: + :return: + """ + amount_of_cards = main_page.get_amount_of_cards() + data = {} + for _ in range(amount_of_cards): + current_card_number = main_page.get_current_card_number() + question = main_page.get_question_text() + data[current_card_number] = question + assert 'args' not in question, 'Args is presence' + assert '1/N' not in question, 'No cards' + main_page.click_next_card() diff --git a/English-exercises-AQA/pages/chapter2/irregular_verbs.py b/English-exercises-AQA/pages/chapter2/irregular_verbs.py new file mode 100644 index 0000000..a2e242d --- /dev/null +++ b/English-exercises-AQA/pages/chapter2/irregular_verbs.py @@ -0,0 +1,34 @@ +import allure + +from locators.main_page_locators import PrepositionsLocators + +from pages.chapter1.prepositions.Prepositions import PrepositionsPages + + +class IrregularVerbsPages(PrepositionsPages): + locators = PrepositionsLocators() + + def check_irregular_verbs_options(self): + amount_of_cards = self.get_amount_of_cards() + for i in range(amount_of_cards): + with allure.step('#' * 50): + pass + question = self.get_question_text() + with allure.step(f'Question is: {question}'): + pass + with allure.step('Click button "Show answer".'): + self.element_is_presence_and_clickable(self.locators.SHOW_ANSWER_BUTTON).click() + correct_answer = self.element_is_visible(self.locators.CORRECT_ANSWER_TEXT).text + with allure.step(f'Get correct answer: {correct_answer}.'): + if ',' in correct_answer: + correct_answer = correct_answer.split(',')[0] + # print('correct_answer after split', correct_answer) + with allure.step(f'Enter correct answer: {correct_answer}.'): + self.element_is_presence_and_clickable(self.locators.INPUT_PLACE).send_keys(correct_answer) + with allure.step('Click button "Check answer".'): + self.element_is_presence_and_clickable(self.locators.CHECK_ANSWER_BUTTON).click() + with allure.step('Check answer is: "CORRECT".'): + result = self.element_is_visible(self.locators.CORRECT_OR_WRONG).text + with allure.step('Click button "Next card".'): + self.element_is_presence_and_clickable(self.locators.NEXT_CARD_BUTTON).click() + assert result == 'CORRECT' diff --git a/English-exercises-AQA/requirements.txt b/English-exercises-AQA/requirements.txt new file mode 100644 index 0000000..4bbb506 --- /dev/null +++ b/English-exercises-AQA/requirements.txt @@ -0,0 +1,6 @@ +pytest==7.4.2 +selenium==4.14.0 +faker==17.0.0 +allure-pytest==2.13.2 + + diff --git a/English-exercises-AQA/tests/__init__.py b/English-exercises-AQA/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/English-exercises-AQA/tests/conftest.py b/English-exercises-AQA/tests/conftest.py new file mode 100644 index 0000000..4bbba49 --- /dev/null +++ b/English-exercises-AQA/tests/conftest.py @@ -0,0 +1,20 @@ +from datetime import datetime + +import allure +import pytest +from selenium import webdriver + +from selenium.webdriver.chrome.options import Options + + +@pytest.fixture() +def driver(): + options = Options() + options.add_argument('--headless') + driver = webdriver.Chrome(options=options) + driver.implicitly_wait(5) + driver.maximize_window() + yield driver + attach = driver.get_screenshot_as_png() + allure.attach(attach, name=f"Screenshot {datetime.today()}", attachment_type=allure.attachment_type.PNG) + driver.quit() diff --git a/English-exercises-AQA/tests/test_cards.py b/English-exercises-AQA/tests/test_cards.py new file mode 100644 index 0000000..6ac11bf --- /dev/null +++ b/English-exercises-AQA/tests/test_cards.py @@ -0,0 +1,606 @@ +# import allure +# import pytest +# from pages.chapter1.prepositions.Prepositions import PrepositionsPages +# from pages.chapter2.irregular_verbs import IrregularVerbsPages +# +# +# @allure.suite('Chapter 1') +# class TestChapter1: +# @allure.sub_suite('1.1. Test Prepositions Of Time Page.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_of_time') +# class TestPrepositions_1_1: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_of_time' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# @pytest.mark.xfail +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.2. Test Put the correct preposition!') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_of_place') +# class TestPrepositions_1_2: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_of_place' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.3. In/on time, at/in the end/beginning.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_in_on_time_at_in_the_end') +# class TestPrepositions_1_3: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_in_on_time_at_in_the_end' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated.' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.4. To/at/in/into.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_to_at_in_into') +# class TestPrepositions_1_4: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_to_at_in_into' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.5. On/in/at (other uses).') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_on_in_at') +# class TestPrepositions_1_5: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_on_in_at' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.6. Usage of "by" preposition.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_by') +# class TestPrepositions_1_6: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_by' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# @allure.title('Check questions no repeated.') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.7. Prepositions with nouns.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_nouns') +# class TestPrepositions_1_7: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_nouns' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.8. Prepositions with adjectives.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives') +# class TestPrepositions_1_8: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.9. Prepositions with adjectives 2.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives2') +# class TestPrepositions_1_9: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives2' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.10. Prepositions with verbs.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs') +# class TestPrepositions_1_10: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# (main_page.check_args_is_not_presence(main_page)) +# +# @allure.sub_suite('1.11. Prepositions with verbs (p2).') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs2') +# class TestPrepositions_1_11: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs2' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.12. Prepositions with verbs (p3).') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs3') +# class TestPrepositions_1_12: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs3' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.13. Prepositions with verbs (p4).') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs4') +# class TestPrepositions_1_13: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs4' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# @allure.sub_suite('1.14. Prepositions with verbs (p5).') +# @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs5') +# class TestPrepositions_1_14: +# url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs5' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# # @pytest.mark.xfail +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# +# @allure.suite('Chapter 2') +# class TestChapter2: +# @allure.sub_suite('2 Test Irregular verbs. Write 2nd and 3rd forms of a verb.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=irregular_verbs') +# class TestIrregularVerbs: +# url = 'https://english.areso.pro/lesson.html?lesson=irregular_verbs' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = IrregularVerbsPages(driver, self.url) +# main_page.open() +# main_page.check_irregular_verbs_options() +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# +# @allure.suite('Chapter 3') +# class TestChapter3: +# @allure.sub_suite('Test Do or Make.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=do_or_make') +# class TestDoOrMake: +# url = 'https://english.areso.pro/lesson.html?lesson=do_or_make' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_main_options(main_page) +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# +# @allure.suite('Chapter 4') +# class TestChapter4: +# @allure.sub_suite('Test Negative Prefixes') +# @allure.link('https://english.areso.pro/lesson.html?lesson=negative_prefixes') +# class TestIrregularVerbs: +# url = 'https://english.areso.pro/lesson.html?lesson=negative_prefixes' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = IrregularVerbsPages(driver, self.url) +# main_page.open() +# main_page.check_irregular_verbs_options() +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# +# @allure.suite('Chapter 5') +# class TestChapter5: +# @allure.sub_suite('Test Adjectives.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=adjectives') +# class TestIrregularVerbs: +# url = 'https://english.areso.pro/lesson.html?lesson=adjectives' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = IrregularVerbsPages(driver, self.url) +# main_page.open() +# main_page.check_irregular_verbs_options() +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) +# +# +# @allure.suite('Synonyms') +# class TestSynonyms: +# @allure.sub_suite('Test synonyms.') +# @allure.link('https://english.areso.pro/lesson.html?lesson=synonyms') +# class TestIrregularVerbs: +# url = 'https://english.areso.pro/lesson.html?lesson=synonyms' +# +# @allure.title('test_check_main_options') +# @allure.description('Check main page options.') +# @allure.severity('NORMAL') +# def test_check_main_options(self, driver): +# main_page = IrregularVerbsPages(driver, self.url) +# main_page.open() +# main_page.check_irregular_verbs_options() +# +# @allure.title('test_check_questions_no_repeated') +# @allure.description('Check questions no repeated.') +# @allure.severity('NORMAL') +# def test_check_questions_no_repeated(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# data1, data2 = main_page.check_questions_no_repeated(main_page) +# assert data1 == data2, 'Question is repeated' +# +# @allure.title('test_args_is_not_presence') +# @allure.description('Check args is not presence.') +# @allure.severity('NORMAL') +# def test_args_is_not_presence(self, driver): +# main_page = PrepositionsPages(driver, self.url) +# main_page.open() +# main_page.check_args_is_not_presence(main_page) diff --git a/English-exercises-AQA/tests/test_chapter1.py b/English-exercises-AQA/tests/test_chapter1.py new file mode 100644 index 0000000..e83a702 --- /dev/null +++ b/English-exercises-AQA/tests/test_chapter1.py @@ -0,0 +1,440 @@ +import allure +import pytest +from pages.chapter1.prepositions.Prepositions import PrepositionsPages + + +@allure.suite('Chapter 1') +class TestChapter1: + @allure.sub_suite('1.1. Test Prepositions Of Time Page.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_of_time') + class TestPrepositions_1_1: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_of_time' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + @pytest.mark.xfail + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.2. Test Put the correct preposition!') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_of_place') + class TestPrepositions_1_2: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_of_place' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.3. In/on time, at/in the end/beginning.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_in_on_time_at_in_the_end') + class TestPrepositions_1_3: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_in_on_time_at_in_the_end' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated.' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.4. To/at/in/into.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_to_at_in_into') + class TestPrepositions_1_4: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_to_at_in_into' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.5. On/in/at (other uses).') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_on_in_at') + class TestPrepositions_1_5: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_on_in_at' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.6. Usage of "by" preposition.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_by') + class TestPrepositions_1_6: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_by' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + @allure.title('Check questions no repeated.') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.7. Prepositions with nouns.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_nouns') + class TestPrepositions_1_7: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_nouns' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.8. Prepositions with adjectives.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives') + class TestPrepositions_1_8: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.9. Prepositions with adjectives 2.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives2') + class TestPrepositions_1_9: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_adjectives2' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.10. Prepositions with verbs.') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs') + class TestPrepositions_1_10: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + (main_page.check_args_is_not_presence(main_page)) + + @allure.sub_suite('1.11. Prepositions with verbs (p2).') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs2') + class TestPrepositions_1_11: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs2' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.12. Prepositions with verbs (p3).') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs3') + class TestPrepositions_1_12: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs3' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.13. Prepositions with verbs (p4).') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs4') + class TestPrepositions_1_13: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs4' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) + + @allure.sub_suite('1.14. Prepositions with verbs (p5).') + @allure.link('https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs5') + class TestPrepositions_1_14: + url = 'https://english.areso.pro/lesson.html?lesson=prepositions_with_verbs5' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + # @pytest.mark.xfail + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) diff --git a/English-exercises-AQA/tests/test_chapter2.py b/English-exercises-AQA/tests/test_chapter2.py new file mode 100644 index 0000000..bf45442 --- /dev/null +++ b/English-exercises-AQA/tests/test_chapter2.py @@ -0,0 +1,36 @@ +import allure +from pages.chapter1.prepositions.Prepositions import PrepositionsPages +from pages.chapter2.irregular_verbs import IrregularVerbsPages + + +@allure.suite('Chapter 2') +class TestChapter2: + @allure.sub_suite('2 Test Irregular verbs. Write 2nd and 3rd forms of a verb.') + @allure.link('https://english.areso.pro/lesson.html?lesson=irregular_verbs') + class TestIrregularVerbs: + url = 'https://english.areso.pro/lesson.html?lesson=irregular_verbs' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = IrregularVerbsPages(driver, self.url) + main_page.open() + main_page.check_irregular_verbs_options() + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) diff --git a/English-exercises-AQA/tests/test_chapter3.py b/English-exercises-AQA/tests/test_chapter3.py new file mode 100644 index 0000000..38319c2 --- /dev/null +++ b/English-exercises-AQA/tests/test_chapter3.py @@ -0,0 +1,35 @@ +import allure +from pages.chapter1.prepositions.Prepositions import PrepositionsPages + + +@allure.suite('Chapter 3') +class TestChapter3: + @allure.sub_suite('Test Do or Make.') + @allure.link('https://english.areso.pro/lesson.html?lesson=do_or_make') + class TestDoOrMake: + url = 'https://english.areso.pro/lesson.html?lesson=do_or_make' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_main_options(main_page) + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) diff --git a/English-exercises-AQA/tests/test_chapter4.py b/English-exercises-AQA/tests/test_chapter4.py new file mode 100644 index 0000000..d6f34ca --- /dev/null +++ b/English-exercises-AQA/tests/test_chapter4.py @@ -0,0 +1,36 @@ +import allure +from pages.chapter1.prepositions.Prepositions import PrepositionsPages +from pages.chapter2.irregular_verbs import IrregularVerbsPages + + +@allure.suite('Chapter 4') +class TestChapter4: + @allure.sub_suite('Test Negative Prefixes') + @allure.link('https://english.areso.pro/lesson.html?lesson=negative_prefixes') + class TestIrregularVerbs: + url = 'https://english.areso.pro/lesson.html?lesson=negative_prefixes' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = IrregularVerbsPages(driver, self.url) + main_page.open() + main_page.check_irregular_verbs_options() + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) diff --git a/English-exercises-AQA/tests/test_chapter5.py b/English-exercises-AQA/tests/test_chapter5.py new file mode 100644 index 0000000..e9c31d8 --- /dev/null +++ b/English-exercises-AQA/tests/test_chapter5.py @@ -0,0 +1,36 @@ +import allure +from pages.chapter1.prepositions.Prepositions import PrepositionsPages +from pages.chapter2.irregular_verbs import IrregularVerbsPages + + +@allure.suite('Chapter 5') +class TestChapter5: + @allure.sub_suite('Test Adjectives.') + @allure.link('https://english.areso.pro/lesson.html?lesson=adjectives') + class TestIrregularVerbs: + url = 'https://english.areso.pro/lesson.html?lesson=adjectives' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = IrregularVerbsPages(driver, self.url) + main_page.open() + main_page.check_irregular_verbs_options() + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page) diff --git a/English-exercises-AQA/tests/test_synonyms.py b/English-exercises-AQA/tests/test_synonyms.py new file mode 100644 index 0000000..feca785 --- /dev/null +++ b/English-exercises-AQA/tests/test_synonyms.py @@ -0,0 +1,36 @@ +import allure +from pages.chapter1.prepositions.Prepositions import PrepositionsPages +from pages.chapter2.irregular_verbs import IrregularVerbsPages + + +@allure.suite('Synonyms') +class TestSynonyms: + @allure.sub_suite('Test synonyms.') + @allure.link('https://english.areso.pro/lesson.html?lesson=synonyms') + class TestIrregularVerbs: + url = 'https://english.areso.pro/lesson.html?lesson=synonyms' + + @allure.title('test_check_main_options') + @allure.description('Check main page options.') + @allure.severity('NORMAL') + def test_check_main_options(self, driver): + main_page = IrregularVerbsPages(driver, self.url) + main_page.open() + main_page.check_irregular_verbs_options() + + @allure.title('test_check_questions_no_repeated') + @allure.description('Check questions no repeated.') + @allure.severity('NORMAL') + def test_check_questions_no_repeated(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + data1, data2 = main_page.check_questions_no_repeated(main_page) + assert data1 == data2, 'Question is repeated' + + @allure.title('test_args_is_not_presence') + @allure.description('Check args is not presence.') + @allure.severity('NORMAL') + def test_args_is_not_presence(self, driver): + main_page = PrepositionsPages(driver, self.url) + main_page.open() + main_page.check_args_is_not_presence(main_page)