Exemplo n.º 1
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))
Exemplo n.º 2
0
    def test_tcustomer_confirmation(self, config, teardown):

        global tcustomer
        tcustomer = random_tcustomer()

        db_user = GkrDbSteps(config)
        user = GkrUserSteps(config)
        tcustomer_page = CustomerEditPage(config)
        db_user.creates_tcustomer(tcustomer)

        user.login(ADMIN.login, ADMIN.password)
        user.waits_for_ajax()
        customer = db_user.query_first(
            TCustomers, TCustomers.name == tcustomer.customers_data.name)
        user.opens(Urls.ADMIN_TCUSTOMER_EDIT.url % customer.id)
        user.clicks(tcustomer_page.SUBMIT)

        user.waits_for_element_displayed(
            tcustomer_page.dialogs.EMAIL_SUCCESS_DIALOG)
        user.should_see_dialog_text(
            tcustomer_page.dialogs.EMAIL_SUCCESS_DIALOG,
            RegistrationMessages.EMAIL_CONFIRMED.text)

        db_user.should_not_see_db_entry(
            TCustomers, TCustomers.id == tcustomer.customers_data.id)
        db_user.should_see_db_entry(
            Customers, Customers.name == tcustomer.customers_data.name)
Exemplo n.º 3
0
    def test_ticket_update_request_by_authorized_users(self, config, login,
                                                       password):
        db_user = GkrDbSteps(config)
        session = HttpSteps.HttpSession()
        login_url = config.base_url + Urls.LOGIN.url + '/ajax'
        ticket_edit_url = config.base_url + Urls.ADMIN_TICKED_EDIT.url
        advance_updated = db_user.fill_advance_queue(Departments.SIMF_DEP,
                                                     Services.SINGLE_WINDOW,
                                                     datetime.now(),
                                                     ObjectTypes.STROI_OBJECT,
                                                     OPERATOR)
        params = {
            'id': advance_updated.id,
            'serviceid': advance_updated.service_id,
            'inputData': rand_str(10),
            'objectsCount': 2
        }

        session.with_method('post').with_params({
            'username': login,
            'password': password
        }).with_url(login_url).submit()
        session.with_method('post').with_url(
            ticket_edit_url % advance_updated.id).with_params(params).submit()
        sleep(2)

        advance_changed = db_user.query_first(
            Advance, advance_updated.id == advance_updated.id)
        db_user.delete_advance_by_id(advance_updated.id)
        assert_that(
            advance_changed.objects_count, equal_to(1),
            'Запрос изменения тикета ' + ticket_edit_url % advance_updated.id +
            ' открыт для авторизованного пользователя ' + login)
Exemplo n.º 4
0
    def test_concurrent_registration(self, config):
        user = GkrUserSteps(config)
        db_user = GkrDbSteps(config)
        reg_page = RegistrationPage(config)
        dialogs = Dialogs(config)

        i = 0
        report = ''
        while i < int(config.attempts):
            mobile = '9777' + rand_num(7)
            user.opens(Urls.REGISTRATION)
            user.should_see_element(reg_page)
            user.enters_text(reg_page.SURNAME, randrus_str(15))
            user.enters_text(reg_page.NAME, randrus_str(15))
            user.enters_text(reg_page.PATRONYMIC, randrus_str(15))
            user.enters_text(reg_page.BIRTHDAY, '12.06.1984')
            user.enters_text(reg_page.PASSPORT_SERIAL, rand_num(4))
            user.enters_text(reg_page.PASSPORT_NUMBER, rand_num(6))
            user.enters_text(reg_page.ISSUE, randrus_str(15))
            user.enters_text(reg_page.ISSUE_DATE, '09.01.2015')
            user.enters_text(reg_page.MOBILE, mobile)
            user.enters_text(reg_page.EMAIL,
                             rand_str() + '@' + rand_str() + '.com')

            user.waits_for_element_enabled(reg_page.SUBMIT)
            user.submit_regform()

            user.waits_for_element_displayed(dialogs.REG_SUCCESS_DIALOG)
            tc = db_user.query_first(TCustomers,
                                     TCustomers.mobile_phone == mobile)
            user.opens(Urls.LOGOUT)
            user.opens('/registration/customer/?code=' + str(tc.code) +
                       '&id=' + str(tc.id))
            user.waits_for_element_displayed(dialogs.EMAIL_SUCCESS_DIALOG)

            c = db_user.query_first(Customers,
                                    Customers.mobile_phone == mobile)
            report = report + '\nНовый пользователь id=' + str(
                c.id) + ', phone=' + c.mobile_phone
            user.logout()
            i += 1

        allure.attach('response.log', str(report), type=AttachmentType.TEXT)
Exemplo n.º 5
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)
Exemplo n.º 6
0
    def test_blocking_password_recovery(self, config, setup, teardown):
        user = GkrUserSteps(config)
        db_user = GkrDbSteps(config)
        main_page = MainPage(config)
        dialogs = Dialogs(config)

        user.logout()
        user.clicks(main_page.top_menu.LOGIN_LINK)
        user.clicks(main_page.login_form.PASSWORD_RECOVERY)
        user.enters_text(main_page.recovery.EMAIL, customer.customers_data.email)
        user.clicks(main_page.login_form.SUBMIT)

        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_dialog_text(dialogs.RESET_PASSWORD_SUCCESS_DIALOG,
                                    ErrorMessages.PASSWORD_RECOVERY_BLOCKED.text)
Exemplo n.º 7
0
def setup(request):
    global db_user, session, login_url, logout_url, blocking_url, ticket_edit_url, customer
    config = getattr(request, '_funcargs')['config']
    db_user = GkrDbSteps(config)
    session = HttpSteps.HttpSession()
    logout_url = config.base_url + Urls.LOGOUT.url
    blocking_url = config.base_url + Urls.ADMIN_BLOCKING.url
    login_url = config.base_url + Urls.LOGIN.url + '/ajax'
    ticket_edit_url = config.base_url + Urls.ADMIN_TICKED_EDIT.url

    r_user = random_user(UserRoles.CUSTOMER)
    db_user.create_user(r_user)
    sleep(1)
    customer = db_user.query_first(
        Customers,
        Customers.mobile_phone == r_user.customers_data.mobile_phone)
Exemplo n.º 8
0
    def test_service_creation(self, config, setup, teardown):
        global service
        user = GkrUserSteps(config)
        db_user = GkrDbSteps(config)
        services_page = ServicesAdminPage(config)

        name = randrus_str(10)
        prefix = randrus_str(2)
        group = UserTypes.LEGAL
        duration = 10
        additional_duration = 5
        percent_records = 30
        percent_records_advance = 60
        button_text = "<html><b><p align=center><span style='font-size:40.0pt;color:white'>%s</span></b>" % name

        user.opens(Urls.ADMIN_SERVICES)
        user.enters_text(services_page.NAME, name)
        user.enters_text(services_page.PREFIX, prefix)
        user.chooses_from_select(services_page.GROUP, group.name)
        user.enters_text(services_page.DURATION, duration)
        user.enters_text(services_page.ADDITIONAL_DURATION, additional_duration)
        user.enters_text(services_page.PERCENT_RECORDS, percent_records)
        user.enters_text(services_page.PERCENT_RECORDS_ADVANCE, percent_records_advance)
        user.waits_for_element_enabled(services_page.SUBMIT)
        user.clicks(services_page.SUBMIT)
        user.waits_for_ajax()
        user.reloads_page()
        service = db_user.query_first(Services, Services.name == name)

        # проверяет данные в таблице
        row = services_page.SERVICES_LIST.get_row_by_title(name)
        user.should_see_element_with_text(row.id, service.id)
        user.should_see_element_with_text(row.title, name)
        user.should_see_element_with_text(row.group, group.name)

        # проверяет данные в базе
        db_user.should_see_db_entry_value(service, 'name', name)
        db_user.should_see_db_entry_value(service, 'service_prefix', prefix)
        db_user.should_see_db_entry_value(service, 'group_id', group.id)
        db_user.should_see_db_entry_value(service, 'duration', duration)
        db_user.should_see_db_entry_value(service, 'aditional_duration', additional_duration)
        db_user.should_see_db_entry_value(service, 'precent_records', percent_records/100)
        db_user.should_see_db_entry_value(service, 'precent_records_advance', percent_records_advance/100)
        db_user.should_see_db_entry_value(service, 'button_text', button_text)
Exemplo n.º 9
0
    def test_legal_self_registration(self, config, teardown):
        global legal_mobile
        legal = LEGAL_REG
        user = GkrUserSteps(config)
        db_user = GkrDbSteps(config)
        reg_page = RegistrationPage(config)
        dialogs = Dialogs(config)
        profile_page = ProfilePage(config)
        legal_mobile = legal.customers_data.mobile_phone

        user.opens(Urls.REGISTRATION)
        user.should_see_element(reg_page)
        user.clicks(reg_page.LEGAL_TYPE)
        user.waits_for_element_displayed(reg_page.LEGAL_HEADER)
        user.fill_legal_registration_form(legal)
        user.clicks(reg_page.CHECKBOX)
        user.waits_for_element_enabled(reg_page.SUBMIT)
        user.clicks(reg_page.SUBMIT)

        user.waits_for_element_displayed(dialogs.REG_SUCCESS_DIALOG)
        user.should_see_dialog_text(dialogs.REG_SUCCESS_DIALOG,
                                    Messages.REGISTRATION_SUCCESSFUL.text)
        user.close(dialogs.REG_SUCCESS_DIALOG)

        t_customer = db_user.query_first(
            TCustomers,
            TCustomers.mobile_phone == legal.customers_data.mobile_phone)
        user.opens(Urls.REGISTRATION.url + '/customer/?code=' +
                   str(t_customer.code) + '&id=' + str(t_customer.id))
        legal.password = db_user.query_first(
            AclUsers, AclUsers.name == legal.customers_data.mobile_phone).pwd

        user.should_see_element(dialogs.EMAIL_SUCCESS_DIALOG)
        user.should_see_dialog_text(dialogs.EMAIL_SUCCESS_DIALOG,
                                    Messages.EMAIL_CONFIRMED.text)
        user.close(dialogs.EMAIL_SUCCESS_DIALOG)

        user.login(legal.customers_data.mobile_phone, legal.password)

        # проверка доступности полей
        disabled = 'disabled'
        user.should_see_attribute_value(profile_page.SURNAME, disabled, True)
        user.should_see_attribute_value(profile_page.NAME, disabled, True)
        user.should_see_attribute_value(profile_page.PATRONYMIC, disabled,
                                        True)
        user.should_see_attribute_value(profile_page.EMAIL, disabled, True)
        user.should_see_attribute_value(profile_page.MOBILE, disabled, True)
        user.should_see_attribute_value(profile_page.INN, disabled, True)

        user.should_see_element_enabled(profile_page.PASSWORD)
        user.should_see_element_enabled(profile_page.PASSWORD_CONFIRM)

        # проверка значений
        user.should_see_field_value(profile_page.INN, legal.customers_data.inn)
        user.should_see_field_value(profile_page.SURNAME,
                                    legal.customers_data.surname)
        user.should_see_field_value(profile_page.NAME,
                                    legal.customers_data.name)
        user.should_see_field_value(profile_page.PATRONYMIC,
                                    legal.customers_data.patronymic)
        user.should_see_field_value(profile_page.EMAIL,
                                    legal.customers_data.email)
        user.should_see_field_value(profile_page.MOBILE,
                                    legal.customers_data.mobile_phone)