def test_move_user_to_group(app, db, orm): all_users = orm.get_contact_list() if len(orm.get_contact_list()) == 0: app.contact.create_new_user(Contact(firstname="Carlos", middlename="Карлович", lastname="Sainz", title="Driver", company="McLaren F1 Team", home_phone="000-000-00", mobile_phone="random_mobile_phone", work_phone="random_work_phone", secondary_phone="random_secondary_phone", email="random_email", email2="random_email2", email3="random_email3")) all_groups = orm.get_group_list() if len(orm.get_group_list()) == 0: app.group.create(Group(name="Тестовая группа для проверки метода обновления данных в группе", header="Задание №9", footer="Футер задания №1")) # выбираем случайного пользователя random_user = random.choice(all_users) user_id = random_user.user_id random_group = random.choice(all_groups) group_id = random_group.group_id # Добавляем пользователя в группу app.contact.add_contact_to_group_by_id(user_id, group_id) contacts_in_group = db.get_contact_in_group(user_id, group_id) # Список пользователей в группах через PyMySql # contacts_in_group = orm.get_contacts_in_group(Group(group_id=group_id)) # Список пользователей в группах через ORM assert contacts_in_group
def get_contact_info_from_view_page(self, index): wd = self.app.wd self.open_contact_view_by_index(index) text = wd.find_element_by_id("content").text home_phone = re.search("H: (.*)", text).group(1) mobile_phone = re.search("M: (.*)", text).group(1) work_phone = re.search("W: (.*)", text).group(1) secondary_phone = re.search("P: (.*)", text).group(1) return Contact(home_phone=home_phone, mobile_phone=mobile_phone, work_phone=work_phone, secondary_phone=secondary_phone)
def get_contact_list(self): list = [] cursor = self.connection.cursor() try: cursor.execute("select id, firstname, lastname from addressbook") for row in cursor: (user_id, firstname, lastname) = row list.append(Contact(user_id=str(id), firstname=firstname, lastname=lastname)) finally: cursor.close() return list
def convert(contact): return Contact(user_id=str(contact.id), firstname=contact.firstname, lastname=contact.lastname, home_phone=contact.home_phone, work_phone=contact.work_phone, mobile_phone=contact.mobile_phone, secondary_phone=contact.secondary_phone, email=contact.email, email2=contact.email2, email3=contact.email3)
def get_user_from_table(self): wd = self.app.wd self.home_page() self.users_cache = [] for element in wd.find_elements_by_name("entry"): user_id = element.find_element_by_name("selected[]").get_attribute("value") cells = element.find_elements_by_tag_name("td") firstname_field = cells[2].text lastname_field = cells[1].text # all_phones = cells[5].text.splitlines() all_phones = cells[5].text all_emails = cells[4].text self.users_cache.append(Contact(firstname=firstname_field, lastname=lastname_field, user_id=user_id, all_phones_from_home_page=all_phones, all_emails_from_home_page=all_emails))
def test_update_user_orm_check(app, orm, check_ui): # получаем список пользователей до редактирования old_users = orm.get_contact_list() if len(orm.get_contact_list()) == 0: app.contact.create_new_user(Contact(firstname="Carlos", middlename="Карлович", lastname="Sainz", title="Driver", company="McLaren F1 Team", home_phone="000-000-00", mobile_phone="random_mobile_phone", work_phone="random_work_phone", secondary_phone="random_secondary_phone", email="random_email", email2="random_email2", email3="random_email3")) # данные для редактирования edit_user_data = Contact(firstname="Carlos (edit)", middlename="Карлович (edit)", lastname="Sainz (edit)", title="Driver", company="Ferrari F1 Team (in 2021)", home_phone="000-000-00", mobile_phone="random_mobile_phone", work_phone="random_work_phone", secondary_phone="random_secondary_phone", email="random_email", email2="random_email2", email3="random_email3") # выбираем случайного пользователя random_user = random.choice(old_users) edit_user_data.user_id = random_user.user_id # редактируем данные пользователя app.contact.edit_user_by_id(edit_user_data, random_user.user_id) # получаем данные после редактирования edited_users = orm.get_contact_list() assert edited_users # присваиваем старой записи новые данные for item in old_users: if item.user_id == random_user.user_id: item.firstname = edit_user_data.firstname item.lastname = edit_user_data.lastname # сортировка a = sorted(old_users, key=Contact.user_id_or_max) b = sorted(edited_users, key=Contact.user_id_or_max) assert a == b
def test_delete_user_orm_check(app, orm, check_ui): new_user = Contact(firstname="Carlos", middlename="Карлович", lastname="Sainz", title="Driver", company="McLaren F1 Team", home_phone="000-000-00") if len(orm.get_contact_list()) == 0: app.contact.create_new_user(new_user) old_users = orm.get_contact_list() random_user = random.choice(old_users) app.contact.delete_user_by_id(random_user.user_id) assert len(old_users) - 1 == app.contact.count() new_users = orm.get_contact_list() old_users.remove(random_user) assert old_users == new_users if check_ui: assert sorted(new_users, key=Contact.user_id_or_max) == sorted(app.contact.get_contacts_list(), key=Contact.user_id_or_max)
def get_contact_info_from_edit_page(self, index): wd = self.app.wd self.open_contact_to_edit_by_index(index) user_id = wd.find_element_by_name("id").get_attribute("value") firstname = wd.find_element_by_name("firstname").get_attribute("value") middlename = wd.find_element_by_name("middlename").get_attribute("value") lastname = wd.find_element_by_name("lastname").get_attribute("value") nickname = wd.find_element_by_name("nickname").get_attribute("value") email = wd.find_element_by_name("email").get_attribute("value") email2 = wd.find_element_by_name("email2").get_attribute("value") email3 = wd.find_element_by_name("email3").get_attribute("value") homepage = wd.find_element_by_name("homepage").get_attribute("value") home_phone = wd.find_element_by_name("home").get_attribute("value") mobile_phone = wd.find_element_by_name("mobile").get_attribute("value") work_phone = wd.find_element_by_name("work").get_attribute("value") secondary_phone = wd.find_element_by_name("phone2").get_attribute("value") return Contact(user_id=user_id, firstname=firstname, middlename=middlename, lastname=lastname, nickname=nickname, home_phone=home_phone, mobile_phone=mobile_phone, work_phone=work_phone, secondary_phone=secondary_phone, email=email, email2=email2, email3=email3, homepage=homepage)
def test_delete_user_from_group(app, db, orm): # Проверка, что есть хотя бы один пользователь и есть группа. Если нет, то создаём. Добавляем пользователя в группу if len(db.get_all_users_in_all_groups()) == 0: all_users = orm.get_contact_list() if len(orm.get_contact_list()) == 0: app.contact.create_new_user(Contact(firstname="Carlos", middlename="Карлович", lastname="Sainz", title="Driver", company="McLaren F1 Team", home_phone="000-000-00", mobile_phone="random_mobile_phone", work_phone="random_work_phone", secondary_phone="random_secondary_phone", email="random_email", email2="random_email2", email3="random_email3")) all_groups = orm.get_group_list() if len(orm.get_group_list()) == 0: app.group.create(Group(name="Тестовая группа для проверки метода обновления данных в группе", header="Задание №9", footer="Футер задания №1")) # выбираем случайного пользователя из существующих random_user = random.choice(all_users) user_id = random_user.user_id random_group = random.choice(all_groups) group_id = random_group.group_id # добавляем в группу app.contact.add_contact_to_group_by_id(user_id, group_id) # Получаем user_id и group_id из таблицы address_in_groups all_users_in_groups = db.get_all_users_in_all_groups() user_id = all_users_in_groups[0].user_id group_id = all_users_in_groups[0].group_id # Удаляем пользователя из группы app.contact.delete_user_from_group(user_id, group_id) contacts_in_group = db.get_contact_in_group(user_id, group_id) # Список пользователей в группах через PyMySql # contacts_in_group = orm.get_contacts_in_group(Group(group_id=group_id)) # Список пользователей в группах через ORM assert contacts_in_group == []
def convert(contact): return Contact(user_id=str(contact.id), firstname=contact.firstname, lastname=contact.lastname)
from model.contact_m import Contact # статические тестовые данные testdata = [ Contact(firstname="Carlos (edit)111", middlename="Карлович (edit)111", lastname="Sainz (edit)111", title="Driver111", company="Ferrari F1 Team (in 2021)111", home_phone="000-000-00111", mobile_phone="random_mobile_phone", work_phone="random_work_phone", secondary_phone="random_secondary_phone", email="random_email", email2="random_email2", email3="random_email3"), Contact(firstname="Carlos222", middlename="Карлович222", lastname="Sainz222", title="Driver2", company="2", home_phone="222222", mobile_phone="2222222", work_phone="random_work_phone222", secondary_phone="random_secondary_phone222", email="random_email222", email2="random_email2222", email3="random_email3222") ]
if o == "-n": n = int(a) elif o == "-f": f = a # фунция для создания случайной последовательности значений def random_string(prefix, maxlen): symbols = string.ascii_letters + string.digits return prefix + "".join([random.choice(symbols) for i in range(random.randrange(maxlen))]) # форма для создания объекта (тестовые данные) на основе рандомного значения testdata = [ Contact(firstname=random_string("firstname", 10), middlename=random_string("middlename", 10), lastname=random_string("lastname", 10), title=random_string("title", 10), company=random_string("company", 10), home_phone=random_string("company", 10), mobile_phone=random_string("mobile_phone", 10), work_phone=random_string("work_phone", 10), secondary_phone=random_string("secondary_phone", 10), email=random_string("email", 10), email2=random_string("email2", 10), email3=random_string("email3", 10)) for i in range(3) ] # Запись данных в json файл data/contacts.json root_path = os.path.dirname(os.path.abspath(__file__)) file = os.path.join(root_path, "..", f) with open(file, "w") as out: jsonpickle.set_encoder_options("json", indent=2) out.write(jsonpickle.encode(testdata))