from model.contact import Contact
from random import randrange


#def test_modify_first_contact_firstname(app):
#    if app.contact.contact_count() == 0:
#        app.contact.create_contact(Contact(firstname="для модификации контакта"))
#    old_contacts_list = app.contact.get_contact_list()
#    contact = Contact(firstname="NewName1")
#    contact.id = old_contacts_list[0].id
#    app.contact.modify_first_contact(contact)
#    assert len(old_contacts_list) == app.contact.contact_count(), "Длина списка контактов не равна после модификации"
#    new_contact_list = app.contact.get_contact_list()
#    old_contacts_list[0] = contact
#    assert sorted(old_contacts_list, key=Contact.id_or_max) == sorted(new_contact_list, key=Contact.id_or_max)


def test_modify_some_contact_firstname(app, db, check_ui):
    if len(db.get_db_contact_list()) == 0:
        app.contact.create_contact(Contact(firstname="для модификации контакта"))
    old_contacts_list = db.get_db_contact_list()
    index = randrange(len(old_contacts_list))
    contact = Contact(firstname="NewName1")
    contact.id = old_contacts_list[index].id
    app.contact.modify_some_contact_by_id(contact.id, contact)
    assert len(old_contacts_list) == app.contact.contact_count(), "Длина списка контактов не равна после модификации"
    new_contact_list = db.get_db_contact_list()
    old_contacts_list[index] = contact
    assert sorted(old_contacts_list, key=Contact.id_or_max) == sorted(new_contact_list, key=Contact.id_or_max)
    if check_ui:
        assert sorted(new_contact_list, key=Contact.id_or_max) == sorted(app.group.get_contact_list(),
                                                                         key=Contact.id_or_max)




from model.contact import Contact
from random import randrange


#def test_modify_first_contact_firstname(app):
#    if app.contact.contact_count() == 0:
#        app.contact.create_contact(Contact(firstname="для модификации контакта"))
#    old_contacts_list = app.contact.get_contact_list()
#    contact = Contact(firstname="NewName1")
#    contact.id = old_contacts_list[0].id
#    app.contact.modify_first_contact(contact)
#    assert len(old_contacts_list) == app.contact.contact_count(), "Длина списка контактов не равна после модификации"
#    new_contact_list = app.contact.get_contact_list()
#    old_contacts_list[0] = contact
#    assert sorted(old_contacts_list, key=Contact.id_or_max) == sorted(new_contact_list, key=Contact.id_or_max)


def test_modify_some_contact_firstname(app, db, check_ui):
    if len(db.get_db_contact_list()) == 0:
        app.contact.create_contact(Contact(firstname="для модификации контакта"))
    old_contacts_list = db.get_db_contact_list()
    index = randrange(len(old_contacts_list))
    contact = Contact(firstname="NewName1")
    contact.id = old_contacts_list[index].id
    app.contact.modify_some_contact_by_id(contact.id, contact)
    assert len(old_contacts_list) == app.contact.contact_count(), "Длина списка контактов не равна после модификации"
    new_contact_list = db.get_db_contact_list()
    old_contacts_list[index] = contact
    assert sorted(old_contacts_list, key=Contact.id_or_max) == sorted(new_contact_list, key=Contact.id_or_max)
    if check_ui:
        assert sorted(new_contact_list, key=Contact.id_or_max) == sorted(app.group.get_contact_list(),
                                                                         key=Contact.id_or_max)




#def test_modify_first_contact_firstname(app): #    if app.contact.contact_count() == 0: #        app.contact.create_contact(Contact(firstname="для модификации контакта")) #    old_contacts_list = app.contact.get_contact_list() #    contact = Contact(firstname="NewName1") #    contact.id = old_contacts_list[0].id #    app.contact.modify_first_contact(contact) #    assert len(old_contacts_list) == app.contact.contact_count(), "Длина списка контактов не равна после модификации" #    new_contact_list = app.contact.get_contact_list() #    old_contacts_list[0] = contact #    assert sorted(old_contacts_list, key=Contact.id_or_max) == sorted(new_contact_list, key=Contact.id_or_max)