def test_global_info_about_person(self, person):
        try:
            persons_page = self.app.persons_page
            persons_page.is_this_page()
            # Find new person by surname (Alexey test 'add person')
            add_person_pattern = AddPersonPattern()
            add_person_pattern.search_person_by_surname(self.app, person.surname_ukr)
            persons_page.wait_until_page_generate()
            persons_page.view_first_person_in_page
            persons_page.wait_until_page_generate()
            # Is it current view person page?
            assert self.app.person_papers_view_page.get_text_person_profile() == u"Перегляд персони"

            personUkrFIO = person.surname_ukr + " " + person.first_name_ukr + " " + person.second_name_ukr
            personEngFIO = person.surname_eng + " " + person.first_name_eng
            private_case_chars = person.private_case_chars
            private_case_number = str(person.private_case_number)

            actual_person = self.app.person_current_view_page

            assert personUkrFIO == actual_person.get_fio_ukranian().text
            assert personEngFIO == actual_person.get_fio_english().text
            assert private_case_chars == actual_person.get_serial_person_record()
            assert private_case_number == actual_person.get_number_person_record()
        except AssertionError:
            allure.attach('screenshot', self.app.driver.get_screenshot_as_png(), type=AttachmentType.PNG)
            raise
 def test_surname_search(self, person):
     try:
         with pytest.allure.step("Prepare Data"):
             add_person_pattern = AddPersonPattern()
             add_person_pattern.search_person_by_surname(self.app, person.surname_ukr)
         with pytest.allure.step("Check Data"):
             assert self.app.persons_page.try_get_searched_surname(person.surname_ukr).text.partition(' ')[
                        0] == person.surname_ukr
     except Exception:
         allure.attach('screenshot', self.app.driver.get_screenshot_as_png(), type=AttachmentType.PNG)
         raise
def test_add_enrollment_in_new_person(logout_login, person, dictionary_with_json_files, screenshot):
    with pytest.allure.step('Test of add enrollment in new person.'):
        add_person = AddPersonPattern()
        app = logout_login
        assert app.persons_page.is_this_page()
        add_person.search_person_by_surname(app, person.surname_ukr)
        app.internal_page.wait_until_page_generate()
        app.persons_page.edit_first_person_in_page.click()
        app.persons_page.wait_until_page_generate()
        app.person_base_page.click_enrollments_tab()
        enrollment = fill_enrollment_in_person(app, dictionary_with_json_files["fill_enrollment_main"])
        expected_number = enrollment.number_statements
        app.internal_page.wait_until_page_generate()
        list_with_actual_numbers = app.person_enrollment.enrollment_doc_number
        assert_expression = is_doc_number_in_list_of_numbers(expected_number, list_with_actual_numbers)
        screenshot.assert_and_get_screenshot(app, assert_expression)
        app.persons_page.return_to_persons_main_page(app)
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)