def get_contact_data(self):
     wd = self.app.wd
     text = wd.find_element_by_id("content").text
     home_phone = re.search("H: (.*)", text).group(1)
     work_phone = re.search("W: (.*)", text).group(1)
     mobile_phone = re.search("M: (.*)", text).group(1)
     secondary_phone = re.search("P: (.*)", text).group(1)
     new_contact = Contact()
     new_contact.set_phones(home=home_phone, mobile=mobile_phone, work=work_phone, second_phone=secondary_phone,
                            fax=None)
     return new_contact
def test_check_all_contacts_on_main_page(app, db):
    if len(db.get_contact_list()) == 0:
        contact = Contact(firstname="Ann", middlename="AT", lastname="Arner", nickname="Tee")
        contact.set_phones(home="3321123", mobile="+792938232", work="44142221", second_phone="+791229313", fax="2123")
        app.contact.create(contact)
    contacts_from_main_page = app.contact.get_all_contacts()
    contacts_from_db = db.get_contact_list()
    for db_contact in contacts_from_db:
        value_found = False
        for web_contact in contacts_from_main_page:
            if db_contact.id == web_contact.id:
                value_found = True
                check_all_values_on_home_page(web_contact, db_contact)
                break
        if not value_found:
            raise ValueError('Contact with id %s not found on main page' % str(db_contact.id))
 def get_all_contacts(self):
     self.return_to_home_page()
     # Check current group view
     current_view = self.contacts_page.get_current_group_view()
     # If group view has been changed, reset contact_cache
     if current_view != self.last_view:
         self.contact_cache = None
         self.last_view = current_view
     # Fill contact cache if it has not been filled before
     if self.contact_cache is None:
         self.return_to_home_page()
         self.contact_cache = []
         for element in self.contacts_page.get_all_contacts():
             # Get last name
             lastname = element.find_element_by_xpath("td[2]").text
             # Get first name
             firstname = element.find_element_by_xpath("td[3]").text
             # Get address
             address = element.find_element_by_xpath("td[4]").text
             # Get all emails
             all_emails = element.find_element_by_xpath("td[5]")
             email_list = []
             for one_href in all_emails.find_elements_by_xpath("a"):
                 email_list.append(one_href.text)
             # Get all phones
             all_phones = element.find_element_by_xpath("td[6]").text
             # Get id
             contact_id = element.find_element_by_name("selected[]").get_attribute("value")
             temp_contact = Contact(firstname=firstname, lastname=lastname, id=contact_id)
             temp_contact.set_address(address=address)
             temp_contact.set_all_phones_from_home_page(all_phones_from_home_page=all_phones)
             temp_contact.set_all_emails_from_home_page(all_emails_from_home_page=email_list)
             self.contact_cache.append(temp_contact)
     return list(self.contact_cache)
def test_update_some_contact(app, db, check_ui):
    app.contact.set_default_contacts_view_on_contact_page()
    if len(db.get_contact_list()) == 0:
        contact = Contact(firstname="Ann", middlename="AT", lastname="Arner", nickname="Tee")
        app.contact.create(contact)
    old_contacts = db.get_contact_list()
    contact = random.choice(old_contacts)
    app.contact.update_contact_from_list_by_id(contact.id, None)
    # Count contacts
    new_contact = Contact("", "", "", "")
    new_contact.id = contact.id
    # Check contacts list
    old_contacts.remove(contact)
    old_contacts.append(new_contact)
    new_contacts = db.get_contact_list()
    app.contact.check_if_contacts_are_equal(old_contacts, new_contacts)
    if check_ui:
        new_contacts = app.contact.get_all_contacts()
        app.contact.check_if_contacts_are_equal(old_contacts, new_contacts)
def test_update_last_contact(app, db, check_ui):
    # Prepare before test
    app.contact.prepare_contact_test_suite()
    # Prepare old contact data
    contact = Contact(firstname="Leo", middlename="LLL", lastname="Lemon", nickname="Tee")
    contact.set_company_data(title="MegaMailGroutOfAllWorld", company="MegaMailGroupOfAllWorldCorporation")
    contact.set_address(address="somewhere beyond the sea")
    contact.set_emails(first="*****@*****.**",
                       second="*****@*****.**", third="*****@*****.**")
    contact.set_homepage("www.somewherebeyondthesea.com")
    contact.set_phones(home="112223366", mobile="+7(000)9999911111222", work="44444433", fax="2300011",
                       second_phone="+123331212")
    contact.set_second_info(address="World 36", notes="She is my friend")
    contact.set_birthday(day="4", month="4", year="1987")
    contact.set_anniversary(day="31", month="7", year="2010")
    # Prepare new contact data
    new_contact = Contact(firstname="Anny", middlename="AA", lastname="Arnert", nickname="TaT")
    new_contact.set_company_data(title="MegaMailGroutOfAllWorld2", company="MegaMailGroupOfAllWorldCorporation2")
    new_contact.set_address(address="somewhere beyond the sea2")
    new_contact.set_emails(first="*****@*****.**",
                           second="*****@*****.**", third="*****@*****.**")
    new_contact.set_homepage("www.somewherebeyondthesea2.com")
    new_contact.set_phones(home="112223377", mobile="+7(000)9999911111777", work="44444477", fax="2300077",
                           second_phone="+111331212")
    new_contact.set_second_info(address="World 77", notes="She is my best friend")
    new_contact.set_birthday(day="5", month="5", year="1986")
    new_contact.set_anniversary(day="12", month="3", year="2011")
    # Prepare other contacts
    first_contact = Contact(firstname="Ann", middlename="AT", lastname="Arner", nickname="Tee")
    second_contact = Contact(firstname="Don", middlename="JD", lastname="Doe", nickname="Jay")
    # Create contacts
    app.contact.create(contact)
    app.contact.create(first_contact)
    app.contact.create(second_contact)
    old_contacts = app.contact.get_all_contacts()
    # Update contact
    new_contact.id = old_contacts[2].id
    app.contact.update_contact_from_list(3, new_contact)
    # Check contacts list
    old_contacts[2] = new_contact
    new_contacts = db.get_contact_list()
    app.contact.check_if_contacts_are_equal(old_contacts, new_contacts)
    if check_ui:
        new_contacts = app.contact.get_all_contacts()
        app.contact.check_if_contacts_are_equal(old_contacts, new_contacts)
 def get_data_from_fields(self):
     contact_id = self.get_string_field_value("id")
     firstname = self.get_string_field_value("firstname")
     middlename = self.get_string_field_value("middlename")
     lastname = self.get_string_field_value("lastname")
     nickname = self.get_string_field_value("nickname")
     company = self.get_string_field_value("company")
     title = self.get_string_field_value("title")
     address = self.get_string_field_value("address")
     home = self.get_string_field_value("home")
     mobile = self.get_string_field_value("mobile")
     work = self.get_string_field_value("work")
     fax = self.get_string_field_value("fax")
     email = self.get_string_field_value("email")
     email2 = self.get_string_field_value("email2")
     email3 = self.get_string_field_value("email3")
     homepage = self.get_string_field_value("homepage")
     address2 = self.get_string_field_value("address2")
     phone2 = self.get_string_field_value("phone2")
     notes = self.get_string_field_value("notes")
     contact_data = Contact(firstname=firstname, middlename=middlename, lastname=lastname,
                            nickname=nickname, id=contact_id)
     contact_data.set_company_data(title=title, company=company)
     contact_data.set_address(address=address)
     contact_data.set_second_info(address=address2, notes=notes)
     contact_data.set_emails(first=email, second=email2, third=email3)
     contact_data.set_homepage(homepage)
     contact_data.set_phones(home=home, mobile=mobile, work=work, fax=fax, second_phone=phone2)
     return contact_data