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_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)
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)
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)
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_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)
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)
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)
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)