def test_email_field(self, config, email, message, setup): user = GkrUserSteps(config) reg_page = RegistrationPage(config) user.enters_text(reg_page.EMAIL, email) user.submit_regform() user.waits_for_element_displayed(reg_page.ERROR) user.should_see_element_contains_text(reg_page.ERROR, message)
def test_queue_operator_mobile_field(self, config, mobile, setup, teardown): user = GkrUserSteps(config) queue_page = QueuePage(config) user.enters_text(queue_page.MOBILE, mobile) user.clicks(queue_page.SUBMIT) user.waits_for_element_displayed(queue_page.ERROR_TEXT) user.should_see_text_in_list(queue_page.ERROR_TEXT, ErrorMessages.MOBILE_QUEUE.text)
def test_logged_operator_header_and_menu(self, config, setup, teardown): user = GkrUserSteps(config) main_page = MainPage(config) o = OPERATOR user.login(o.customers_data.mobile_phone, o.password) user.should_not_see_element(main_page.top_menu.PROFILE) user.should_see_element(main_page.top_menu.LOGOUT) user.should_see_list_values(main_page.main_menu.MENU, menu_items)
def test_passport_issue_field(self, config, issue, message, setup): user = GkrUserSteps(config) reg_page = RegistrationPage(config) user.enters_text(reg_page.ISSUE, issue) user.submit_regform() user.waits_for_element_displayed(reg_page.ERROR) user.should_see_element_contains_text(reg_page.ERROR, ErrorMessages.PASSPORT_SERIAL)
def test_queue_operator_empty_locality_field(self, config, setup, teardown): user = GkrUserSteps(config) queue_page = QueuePage(config) user.chooses_from_select(queue_page.CITY, Departments.BEL_DEP.short_name) user.clicks(queue_page.SUBMIT) user.waits_for_element_displayed(queue_page.ERROR_TEXT) user.should_see_text_in_list(queue_page.ERROR_TEXT, ErrorMessages.ADDRESS_MISMATCH.text)
def test_mobile_field_limit(self, config, setup): user = GkrUserSteps(config) reg_page = RegistrationPage(config) expected_phone = '12345678901234' user.enters_text(reg_page.MOBILE, expected_phone + '5') user.submit_regform() user.should_see_field_value(reg_page.MOBILE, expected_phone)
def test_logged_customer_header_and_menu(self, config, setup, teardown): user = GkrUserSteps(config) main_page = MainPage(config) c = CUSTOMER user.login(c.customers_data.mobile_phone, c.password) user.should_see_element(main_page.top_menu.PROFILE) user.should_see_element_matched_to( main_page.top_menu.PROFILE, equal_to_ignoring_case(c.customers_data.name + ' ' + c.customers_data.patronymic)) customer_menu_items = menu_items customer_menu_items.remove(MainMenu.HISTORY.item) user.should_see_list_values(main_page.main_menu.MENU, menu_items)
def setup(request): config = getattr(request, '_funcargs')['config'] user = GkrUserSteps(config) main_page = MainPage(config) user.login(CUSTOMER.customers_data.mobile_phone, CUSTOMER.password) user.waits_for_element_displayed(main_page.top_menu.LOGOUT) user.selects_from_main_menu(MainMenu.QUEUE)
def setup(request): config = getattr(request, '_funcargs')['config'] reg_page = RegistrationPage(config) user = GkrUserSteps(config) user.logout() user.opens(Urls.REGISTRATION) user.should_see_element(reg_page)
def test_not_exist_password(self, config, setup, teardown): user = GkrUserSteps(config) login_page = LoginForm(config) user.login(OPERATOR.customers_data.mobile_phone, '') user.waits_for_element_displayed(login_page.ERROR) user.should_see_element_with_text(login_page.ERROR, ErrorMessages.LOGIN_FAILED.text)
def test_not_exist_login(self, config, setup, teardown): user = GkrUserSteps(config) main_page = MainPage(config) user.login(rand_str(10), rand_str(10)) user.waits_for_element_displayed(main_page.login_form.ERROR) user.should_see_element_with_text(main_page.login_form.ERROR, ErrorMessages.LOGIN_FAILED.text)
def test_legal_objects_type_values(self, config): user = GkrUserSteps(config) queue_page = QueuePage(config) user.login(LEGAL.login, LEGAL.password) user.opens(Urls.QUEUE.url) user.should_see_list_values(queue_page.OBJECT_TYPE, ['---', '1', '2'])
def test_customer_objects_type_values(self, config): user = GkrUserSteps(config) queue_page = QueuePage(config) user.login(CUSTOMER.login, CUSTOMER.password) user.opens(Urls.QUEUE.url) object_types = list(map(str, ObjectTypes)) object_types.append('---') user.should_see_list_values(queue_page.OBJECT_TYPE, object_types)
def setup(request): config = getattr(request, '_funcargs')['config'] global customer, db_user, user, customer_edit_page customer = random_user(UserRoles.CUSTOMER) db_user = GkrDbSteps(config) user = GkrUserSteps(config) customer_edit_page = CustomerEditPage(config) db_user.create_user(customer)
def setup(request): global operator, customer, db_user config = getattr(request, '_funcargs')['config'] db_user = GkrDbSteps(config) user = GkrUserSteps(config) user.login(ADMIN.login, ADMIN.password) user.waits_for_ajax() user.opens(Urls.ADMIN_STATISTIC.url) operator = random_user(UserRoles.OPERATOR) customer = random_user(UserRoles.CUSTOMER, is_legal=True) db_user.create_user(operator) db_user.create_user(customer)
def setup(request): config = getattr(request, '_funcargs')['config'] admin_page = AdminPage(config) user = GkrUserSteps(config) user.login(ADMIN.login, ADMIN.password) user.waits_for_element_displayed(admin_page) global customer, tcustomer customer = random_user(UserRoles.CUSTOMER) tcustomer = random_tcustomer(UserRoles.CUSTOMER)
def setup(request): global fields_operator config = getattr(request, '_funcargs')['config'] db_user = GkrDbSteps(config) queue_page = QueuePage(config) fields_operator = random_user(UserRoles.OPERATOR) db_user.create_user(fields_operator) user = GkrUserSteps(config) user.login(fields_operator.customers_data.mobile_phone, fields_operator.password) user.waits_for_element_displayed(queue_page)
def test_customer_empty_form(self, config): user = GkrUserSteps(config) reg_page = RegistrationPage(config) main_page = MainPage(config) user.logout() user.clicks(main_page.top_menu.REG_LINK) user.submit_regform() error = reg_page.ERROR user.waits_for_element_displayed(error) user.should_see_element_contains_text(error, ErrorMessages.SURNAME_EMPTY) user.should_see_element_contains_text(error, ErrorMessages.NAME_EMPTY) user.should_see_element_contains_text(error, ErrorMessages.EMAIL_EMPTY) user.should_see_element_contains_text(error, ErrorMessages.BIRTHDAY_MALFORMED) user.should_see_element_contains_text(error, ErrorMessages.PASSPORT_SERIAL) user.should_see_element_contains_text(error, ErrorMessages.PASSPORT_NUMBER) user.should_see_element_contains_text(error, ErrorMessages.ISSUE_EMPTY) user.should_see_element_contains_text(error, ErrorMessages.ISSUE_DATE)
def test_legal_inn_field(self, config, inn, message, setup): user = GkrUserSteps(config) reg_page = RegistrationPage(config) user.clicks(reg_page.LEGAL_TYPE) user.waits_for_element_displayed(reg_page.LEGAL_HEADER) user.enters_text(reg_page.INN, inn) user.clicks(reg_page.CHECKBOX) user.waits_for_element_enabled(reg_page.SUBMIT) user.clicks(reg_page.SUBMIT) user.waits_for_element_displayed(reg_page.ERROR) user.should_see_element_contains_text(reg_page.ERROR, message)
def test_passport_serial_field(self, config, passport, setup): user = GkrUserSteps(config) reg_page = RegistrationPage(config) user.enters_text(reg_page.PASSPORT_SERIAL, passport) user.enters_text(reg_page.PASSPORT_NUMBER, passport) user.submit_regform() error = reg_page.ERROR user.waits_for_element_displayed(error) user.should_see_element_contains_text(error, ErrorMessages.PASSPORT_SERIAL) user.should_see_element_contains_text(error, ErrorMessages.PASSPORT_NUMBER)
def test_operator_timeslot(self, config): user = GkrUserSteps(config) db_user = GkrDbSteps(config) queue_page = QueuePage(config) ticket_data_dialog = TicketDataDialog(config) day = (datetime.now() + timedelta(days=random.randrange(0, 2))).strftime('%Y-%m-%d') locality = 'с. Виноградное' street = 'ул. Горная' house = 1 for i in operator_timeslot_data: operator = random_user(UserRoles.OPERATOR) db_user.create_user(operator) object_type = i[0] stat_value = i[1] user.login(operator.customers_data.mobile_phone, operator.password) user.should_see_element(queue_page) user.fill_random_operator_queue() user.chooses_from_select(queue_page.SERVICE, Services.DEAL_REGISTER.name) user.chooses_from_select(queue_page.OBJECT_TYPE, object_type) user.chooses_from_select(queue_page.CITY, Departments.FEO_DEP.short_name) user.enters_suggest(queue_page.LOCALITY, locality) user.enters_suggest(queue_page.STREET, street) user.enters_text(queue_page.HOUSE, house) user.set_calendar_date(queue_page.CALENDAR, day) user.set_calendar_time(queue_page.CALENDAR, None) user.clicks(queue_page.SUBMIT) user.waits_for_element_displayed(ticket_data_dialog) user.opens(Urls.REGISTRATOR) user.chooses_from_select(queue_page.CITY, Departments.FEO_DEP.short_name) user.waits_for_ajax() user.should_see_element_with_text(queue_page.STAT_INDICATOR, stat_value) db_user.delete_user_by_mobile(operator.customers_data.mobile_phone)
def test_queue_no_time_customer(self, config, setup): customer = CUSTOMER user = GkrUserSteps(config) main_page = MainPage(config) queue_page = QueuePage(config) user.login(customer.customers_data.mobile_phone, customer.password) user.waits_for_element_displayed(main_page.top_menu.LOGOUT) user.selects_from_main_menu(MainMenu.QUEUE) user.waits_for_element_displayed(queue_page) user.chooses_from_select(queue_page.SERVICE, Services.GKN.name) user.chooses_from_select(queue_page.OBJECT_TYPE, ObjectTypes.STROI_OBJECT.name) user.chooses_from_select(queue_page.CITY, Departments.SIMF_DEP.short_name) user.waits_for_element_displayed(queue_page.QUEUE_FULL_MESSAGE) user.should_see_element_with_text( queue_page.QUEUE_FULL_MESSAGE, ErrorMessages.NEXT_OPENING_DATE.text + next_opening_date.strftime('%d.%m.%Y'))
def test_mobile_field(self, config, mobile, setup): user = GkrUserSteps(config) reg_page = RegistrationPage(config) user.enters_text(reg_page.MOBILE, mobile) user.submit_regform() user.waits_for_element_displayed(reg_page.ERROR) user.should_see_field_value(reg_page.MOBILE, ''.join(re.findall('\d', mobile))) user.should_see_element_contains_text(reg_page.ERROR, ErrorMessages.MOBILE)
def test_import_successful(self, config, teardown): global mobile mobile = '7990999999' user = GkrUserSteps(config) import_page = ImportPage(config) user.login(ADMIN.login, ADMIN.password) user.waits_for_ajax() user.opens(Urls.ADMIN_IMPORT.url) import_file_path = os.path.abspath(__file__) import_file_path = import_file_path.replace( 'tests/admin/test_import.py', 'data/import.xls') import_page.IMPORT_FILE.element.send_keys(import_file_path) user.clicks(import_page.SUBMIT) user.should_see_element(import_page.IMPORT_BUTTON) user.should_see_list_size(import_page.READY_TABLE, 1) user.should_matches_to_list_item(import_page.READY_TABLE, contains_string(mobile)) user.selects_checkbox(import_page.ADD_CHECKBOX) user.chooses_from_select(import_page.ORGANIZATIONS, 'РНКБ') user.clicks(import_page.IMPORT_BUTTON) user.should_see_element(import_page.ADDED) user.should_see_element_matched_to(import_page.ADDED, contains_string('Добавлено: 1'))
def test_queue_no_time_operator(self, config, setup): operator = OPERATOR user = GkrUserSteps(config) queue_page = QueuePage(config) user.login(operator.customers_data.mobile_phone, operator.password) user.should_see_element(queue_page) user.chooses_from_select(queue_page.SERVICE, Services.SINGLE_WINDOW.name) user.chooses_from_select(queue_page.OBJECT_TYPE, ObjectTypes.DOMOVLADENIE.name) user.chooses_from_select(queue_page.CITY, Departments.SIMF_DEP.short_name) user.waits_for_element_displayed(queue_page.QUEUE_FULL_MESSAGE) user.should_see_element_with_text( queue_page.QUEUE_FULL_MESSAGE, ErrorMessages.NEXT_OPENING_DATE.text + next_opening_date.strftime('%d.%m.%Y'))
def test_password_recovery(self, config, teardown): user = GkrUserSteps(config) db_user = GkrDbSteps(config) login_page = LoginForm(config) main_page = MainPage(config) profile_page = ProfilePage(config) dialogs = Dialogs(config) db_user.create_user(customer) user.logout() user.clicks(main_page.top_menu.LOGIN_LINK) user.clicks(main_page.login_form.RECOVERY) user.enters_text(main_page.recovery.EMAIL, customer.customers_data.email) user.clicks(main_page.recovery.SUBMIT) user.waits_for_element_disappeared(main_page.recovery.WAIT, config.page_load_timeout) user.should_see_element_with_text( main_page.recovery.SUCCESS_TEXT, ConfirmationMessages.PASSWORD_RECOVERY_SUCCESS) created_c = db_user.query_first( Customers, Customers.mobile_phone == customer.customers_data.mobile_phone) user.opens('/forgot/success/?code=' + created_c.code + '&id=' + str(created_c.id)) user.should_see_element_matched_to( dialogs.RESET_PASSWORD_SUCCESS_DIALOG, contains_string( ConfirmationMessages.PASSWORD_RECOVERY_CONFIRMED.text)) new_password = db_user.query_first( AclUsers, AclUsers.name == customer.customers_data.mobile_phone) user.login(customer.customers_data.mobile_phone, customer.password) user.should_see_element_with_text(login_page.ERROR, ErrorMessages.LOGIN_FAILED) user.login(customer.customers_data.mobile_phone, new_password.pwd) user.should_see_element(profile_page)
def test_not_exist_recovery_email(self, config): user = GkrUserSteps(config) main_page = MainPage(config) user.logout() user.clicks(main_page.top_menu.LOGIN_LINK) user.clicks(main_page.login_form.RECOVERY) user.enters_text(main_page.recovery.EMAIL, rand_str(10) + '@' + rand_str(10) + '.' + rand_str(3)) user.clicks(main_page.recovery.SUBMIT) user.should_see_element_with_text( main_page.recovery.ERROR, ErrorMessages.PASSWORD_RECOVERY_FAILED.text)
def test_customer_self_registration(self, config, teardown): global self_reg_mobile customer = random_user(UserRoles.CUSTOMER) user = GkrUserSteps(config) db_user = GkrDbSteps(config) reg_page = RegistrationPage(config) profile_page = ProfilePage(config) main_page = MainPage(config) dialogs = Dialogs(config) self_reg_mobile = customer.customers_data.mobile_phone user.logout() user.clicks(main_page.top_menu.REG_LINK) user.fill_registration_form(customer) user.submit_regform() user.should_see_dialog_text(dialogs.REG_SUCCESS_DIALOG, Messages.REGISTRATION_SUCCESSFUL) t_customer = db_user.query_first(TCustomers, TCustomers.mobile_phone == self_reg_mobile) user.opens(Urls.REGISTRATION.url + '/customer/?code=' + str(t_customer.code) + '&id=' + str(t_customer.id)) customer.password = db_user.query_first(AclUsers, AclUsers.name == customer.customers_data.mobile_phone).pwd user.should_see_dialog_text(dialogs.EMAIL_SUCCESS_DIALOG, Messages.EMAIL_CONFIRMED) user.close(dialogs.EMAIL_SUCCESS_DIALOG) user.login(customer.customers_data.mobile_phone, customer.password) user.should_see_element(profile_page) # проверка доступности полей disabled = 'disabled' user.should_see_attribute_value(reg_page.NAME, disabled, True) user.should_see_attribute_value(reg_page.SURNAME, disabled, True) user.should_see_attribute_value(reg_page.PATRONYMIC, disabled, True) user.should_see_element_enabled(reg_page.BIRTHDAY) user.should_see_attribute_value(reg_page.EMAIL, disabled, True) user.should_see_attribute_value(reg_page.MOBILE, disabled, True) user.should_see_attribute_value(reg_page.HOME_PHONE, disabled, True) user.should_see_attribute_value(reg_page.PASSPORT_SERIAL, disabled, True) user.should_see_attribute_value(reg_page.PASSPORT_NUMBER, disabled, True) user.should_see_attribute_value(reg_page.ISSUE_DATE, disabled, True) user.should_see_attribute_value(reg_page.ISSUE, disabled, True) user.should_see_element_enabled(profile_page.PASSWORD) user.should_see_element_enabled(profile_page.PASSWORD_CONFIRM) # проверка значений app_format = '%d.%m.%Y' user.should_see_element(profile_page) user.should_see_field_value(reg_page.NAME, customer.customers_data.name) user.should_see_field_value(reg_page.SURNAME, customer.customers_data.surname) user.should_see_field_value(reg_page.PATRONYMIC, customer.customers_data.patronymic) user.should_see_field_value(reg_page.BIRTHDAY, customer.customers_data.birthday.strftime(app_format)) user.should_see_field_value(reg_page.EMAIL, customer.customers_data.email) user.should_see_field_value(reg_page.MOBILE, customer.customers_data.mobile_phone) user.should_see_field_value(reg_page.HOME_PHONE, '') user.should_see_field_value(reg_page.PASSPORT_SERIAL, customer.customers_data.serial) user.should_see_field_value(reg_page.PASSPORT_NUMBER, customer.customers_data.no) user.should_see_field_value(reg_page.ISSUE, customer.customers_data.issue) user.should_see_field_value(reg_page.ISSUE_DATE, customer.customers_data.when_at.strftime(app_format))
def test_customer_empty_mobile_phone_field(self, config): user = GkrUserSteps(config) reg_page = RegistrationPage(config) main_page = MainPage(config) customer = random_user(UserRoles.CUSTOMER) user.logout() user.clicks(main_page.top_menu.REG_LINK) user.fill_registration_form(customer) user.enters_text(reg_page.MOBILE, "") user.submit_regform() user.waits_for_element_displayed(reg_page.ERROR) user.should_see_element_contains_text(reg_page.ERROR, ErrorMessages.MOBILE)
def test_legal_timeslot(self, config): user = GkrUserSteps(config) db_user = GkrDbSteps(config) queue_page = QueuePage(config) profile_page = ProfilePage(config) ticket_data_dialog = TicketDataDialog(config) for i in legal_timeslot_data: legal = random_user(UserRoles.CUSTOMER, is_legal=True) db_user.create_user(legal) day = (datetime.now() + timedelta(days=random.randrange(0, 2))).strftime('%Y-%m-%d') service = i[0] stat_value = i[1] locality = 'с. Виноградное' street = 'ул. Горная' user.login(legal.customers_data.mobile_phone, legal.password) user.waits_for_element_displayed(profile_page) user.selects_from_main_menu(MainMenu.QUEUE) user.waits_for_element_displayed(queue_page) user.chooses_from_select(queue_page.CITY, Departments.FEO_DEP.short_name) user.chooses_from_select(queue_page.SERVICE, service) user.chooses_from_select(queue_page.OBJECT_TYPE, '1') user.enters_suggest(queue_page.LOCALITY, locality) user.enters_suggest(queue_page.STREET, street) user.enters_text(queue_page.HOUSE, 2) user.set_calendar_date(queue_page.CALENDAR, day) user.set_calendar_time(queue_page.CALENDAR, None) user.enters_text(queue_page.CAPTCHA, '11111') user.clicks(queue_page.SUBMIT) user.waits_for_element_displayed(ticket_data_dialog) user.login(legal.customers_data.mobile_phone, legal.password) user.waits_for_element_displayed(profile_page) user.selects_from_main_menu(MainMenu.QUEUE) user.chooses_from_select(queue_page.CITY, Departments.FEO_DEP.short_name) user.chooses_from_select(queue_page.SERVICE, service) user.waits_for_ajax() user.should_see_element_with_text(queue_page.STAT_INDICATOR, stat_value) db_user.delete_user_by_mobile(legal.customers_data.mobile_phone)