def test_add_person(app, person, screenshot):
    try:
        with pytest.allure.step('Authorize to the application and click add person button'):
            add_person_pattern = AddPersonPattern()
            add_person_pattern.login_and_delete_all_person_by_name(app, person)
            person_page = app.persons_page
            person_page.is_this_page()
            person_page.add_person_link
            person_page.wait_until_page_generate()
            base_page = app.person_base_page
        with pytest.allure.step('Fill data on the main add person page'):
            main_page = app.main_page
            main_page.fill_in_main_person_page(person)
            base_page.click_extra_tab()
        with pytest.allure.step('Fill data on the extra add person page'):
            extra_page = app.extra_page
            extra_page.fill_in_extra_person_page(person)
            base_page.click_addresses_tab()
        with pytest.allure.step('Fill data on the address add person page'):
            address_page = app.address_page
            address_page.fill_in_address_page(person)
            base_page.click_contacts_tab()
        with pytest.allure.step('Fill data on the contacts add person page'):
            contact_page = app.contact_page
            contact_page.fill_in_contact_page(person)
            base_page.click_papers_tab()
        with pytest.allure.step('Fill data on the documents add person page'):
            papers_page = app.papers_page
            papers_page.fill_in_document_page(person)
            papers_page.wait_until_page_generate()
            base_page.save_new_person()
            #base_page.persons_page_link.click()
        with pytest.allure.step('Assert surname of added person is the same as from input data'):
            screenshot.assert_and_get_screenshot(app, app.persons_page.return_added_person_surname(person) == person.surname_ukr)
    except Exception:
        allure.attach('screenshot', app.driver.get_screenshot_as_png(), type=AttachmentType.PNG)
        raise
def test_delete_person(app, person, screenshot):
    with pytest.allure.step('Test delete the created person.'):
        add_person_pattern = AddPersonPattern()
        add_person_pattern.login_and_delete_all_person_by_name(app, person)
        assert_expression = len(app.persons_page.rows_in_body) == 0
        screenshot.assert_and_get_screenshot(app, assert_expression)