예제 #1
0
    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)
예제 #2
0
 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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
    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)
예제 #8
0
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)
예제 #9
0
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)
예제 #10
0
    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)
예제 #11
0
    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)
예제 #12
0
    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'])
예제 #13
0
    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)
예제 #14
0
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)
예제 #15
0
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)
예제 #16
0
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)
예제 #17
0
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)
예제 #18
0
    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)
예제 #19
0
    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)
예제 #20
0
    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)
예제 #21
0
    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)
예제 #22
0
    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'))
예제 #23
0
    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)
예제 #24
0
    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'))
예제 #25
0
    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'))
예제 #26
0
    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)
예제 #27
0
    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)
예제 #28
0
    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))
예제 #29
0
    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)
예제 #30
0
    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)