def test_adiciona_email_invalido_1(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") emails = [ '', # "aluno [email protected]", "amauri@@impacta.com.br", # "amauri..impacta.com.br", "amauriimpacta.com.br", "*****@*****.**", # "[email protected]", # "a@g", # "[email protected]", # "*****@*****.**", # "*****@*****.**", # "ama@[email protected]", # "[email protected].", # "*****@*****.**", #"[email protected]", # "@amauriimpacta.com.br", # "*****@*****.**", # "amauri@[email protected]" ] for email in emails: try: c.adiciona_email(email) except ValueError: pass else: raise AssertionError('O email deve conter @ e domínio corretamente') assert c.get_emails()['principal'] == Email("*****@*****.**")
def test_adiciona_outro_telefone_como_principal(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") try: c.adiciona_telefone("1198888-8888") except ValueError: pass assert c.get_telefones()['principal'] == TelefoneAtualizado("1198888-8888")
def test_adiciona_telefone(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_telefone("113322-4567", "fixo") c.adiciona_telefone("1198888-8888", "celular") assert c.get_telefones()['principal'] == TelefoneAtualizado("1199999-9999") assert c.get_telefones()['fixo'] == TelefoneAtualizado("113322-4567") assert c.get_telefones()['celular'] == TelefoneAtualizado("1198888-8888")
def test_adiciona_email(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_email("*****@*****.**", "particular") c.adiciona_email("*****@*****.**", "extra") assert c.get_emails()['principal'] == Email('*****@*****.**') assert c.get_emails()['particular'] == Email('*****@*****.**') assert c.get_emails()['extra'] == Email('*****@*****.**')
def test_lista_emails(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_email("*****@*****.**", "particular") c.adiciona_email("*****@*****.**", "extra") assert c.lista_emails() == [('principal', Email("*****@*****.**")), ('particular', Email("*****@*****.**")), ('extra', Email("*****@*****.**"))]
def test_get_telefones(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_telefone("113322-4567", "fixo") c.adiciona_telefone("1198888-8888", "celular") assert c.get_telefones() == {'principal': TelefoneAtualizado('1199999-9999'), 'fixo': TelefoneAtualizado('113322-4567'), 'celular': TelefoneAtualizado('1198888-8888')}
def test_get_emails(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_email("*****@*****.**", "particular") c.adiciona_email("*****@*****.**", "extra") assert c.get_emails() == {'principal': Email("*****@*****.**"), 'particular': Email("*****@*****.**"), 'extra': Email("*****@*****.**")}
def test_lista_telefones(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_telefone("113322-4567", "fixo") c.adiciona_telefone("1198888-8888", "celular") assert c.lista_telefones() == [('principal', TelefoneAtualizado('1199999-9999')), ('fixo', TelefoneAtualizado('113322-4567')), ('celular', TelefoneAtualizado('1198888-8888'))]
def test_adiciona_outro_email_como_principal(): c = Contato("Funcionario", "1199999-9999", "*****@*****.**") assert c.get_emails()['principal'] == Email("*****@*****.**") try: c.adiciona_email("*****@*****.**") except ValueError: pass assert c.get_emails()['principal'] == Email("*****@*****.**")
def test_adiciona_telefone_invalido_2(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") try: c.adiciona_telefone(1198888, "celular") c.adiciona_telefone(11.98888 - 8888, "celular") except TypeError: pass else: raise AssertionError('Telefone deve ser do tipo string') assert not any(['celular' in c.get_telefones()])
def test_15_buscar_contato(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') msg1 = 'O valor buscado existe no contato, deveria retornar True' msg2 = 'O valor buscado não existe no contato, deveria retornar False' assert c1.buscar('Rafa'), msg1 assert c1.buscar('.com'), msg1 assert c1.buscar('977'), msg1 assert not c1.buscar('Pedro'), msg2 assert not c1.buscar('rafael.ribeiro'), msg2 assert not c1.buscar('456'), msg2
def test_adiciona_email_invalido_2(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") for email in [123, 12.30]: try: c.adiciona_email(email) except TypeError: pass else: raise AssertionError('Email deve ser do tipo string') assert c.get_emails()['principal'] == Email("*****@*****.**")
def test_apaga_email(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_email("*****@*****.**", "particular") c.adiciona_email("*****@*****.**", "trabalho") c.apaga_email('particular') c.apaga_email('trabalho') assert not any(['particular' in c.get_emails()]) assert not any(['trabalho' in c.get_emails()]) assert c.get_emails() == {'principal': Email("*****@*****.**")} assert c.get_emails()['principal'] == Email("*****@*****.**")
def test_buscar(): c1 = Contato("Aluno1", "115111-1111", "*****@*****.**") c1.adiciona_telefone("111111-1111", "fixo") c1.adiciona_telefone("1191111-1111", "celular") c1.adiciona_email("*****@*****.**", "email2") c1.adiciona_email("*****@*****.**", "email3") assert c1.buscar("Alun") is True assert c1.buscar("1111") is True assert c1.buscar("@aluno") is True assert c1.buscar("234315435") is False
def test_cria_contato(): try: c = Contato("Aluno", "1199999-9999", "*****@*****.**") except TypeError: assert False, "Erro ao criar o contato" else: assert c.nome == "Aluno", 'O nome foi criado incorretamente' assert c.get_telefones()['principal'] == TelefoneAtualizado("1199999-9999") assert c.get_emails()['principal'] == Email("*****@*****.**") assert isinstance(c.get_telefones()['principal'], Telefone) assert isinstance(c.get_emails()['principal'], Email)
def test_14_apaga_email_principal(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') try: c1.apaga_email('principal') except DeleteError: pass except Exception: raise AssertionError('Levantou o tipo de erro incorreto') else: raise AssertionError( 'Não levantou erro ao tentar apagar o email principal')
def test_create_dump(): c1 = Contato("Aluno1", "115111-1111", "*****@*****.**") c1.adiciona_telefone("111111-1111", "fixo") c1.adiciona_telefone("1191111-1111", "celular") c1.adiciona_email("*****@*****.**", "email2") c1.adiciona_email("*****@*****.**", "email3") c2 = Contato("Aluno2", "115222-2222", "*****@*****.**") c2.adiciona_telefone("112222-2222", "fixo") c2.adiciona_telefone("1192222-2222", "celular") c2.adiciona_email("*****@*****.**", "email2") c2.adiciona_email("*****@*****.**", "email3") c3 = Contato("Aluno3", "115333-3333", "*****@*****.**") c3.adiciona_telefone("113333-3333", "fixo") c3.adiciona_telefone("1193333-3333", "celular") c3.adiciona_email("*****@*****.**", "email2") c3.adiciona_email("*****@*****.**", "email3") for c in [c1, c2, c3]: assert c.create_dump() == { 'nome': c.nome, 'telefones': c.get_telefones(), 'emails': c.get_emails() }
def test_07_cria_contato(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') assert c1.nome == 'Rafael', 'O nome foi criado incorretamente' assert isinstance(c1.get_telefones()['principal'], Telefone), ( 'Objeto adicionado ao dicionário de telefones não é do tipo Telefone' ) assert c1.get_telefones()['principal'] == TelefoneAtualizado( '11999777888'), ( 'o telefone não foi salvo com o valor correto no dicionário') assert isinstance(c1.get_emails()['principal'], Email), ( 'Objeto adicionado ao dicionário de emails não é do tipo Email') assert c1.get_emails()['principal'] == Email('*****@*****.**'), ( 'o email não foi salvo com o valor correto no dicionário')
def test_10_apaga_telefone(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') c1.adiciona_telefone('11987654321', 'trabalho') telefones = c1.get_telefones() assert telefones['principal'] == TelefoneAtualizado('11999777888'), ( 'o telefone não foi salvo com o valor correto no dicionário') assert telefones['trabalho'] == TelefoneAtualizado('11987654321'), ( 'o telefone não foi salvo com o valor ou a chave correta no dicionário' ) c1.apaga_telefone('trabalho') telefones = c1.get_telefones() assert 'trabalho' not in telefones, 'o telefone de trabalho não foi apagado do dicionário' assert 'principal' in telefones, ( 'o telefone principal não deveria ter sido apagado do dicionário')
def test_13_apaga_email(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') c1.adiciona_email('*****@*****.**', 'trabalho') emails = c1.get_emails() assert emails['principal'] == Email('*****@*****.**'), ( 'o email não foi salvo com o valor correto no dicionário') assert emails['trabalho'] == Email('*****@*****.**'), ( 'o email não foi salvo com o valor ou a chave correta no dicionário' ) c1.apaga_email('trabalho') emails = c1.get_emails() assert 'trabalho' not in emails, 'o email de trabalho não foi apagado do dicionário' assert 'principal' in emails, ( 'o email principal não deveria ter sido apagado do dicionário')
def test_apaga_telefone_tipo_nao_existe(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_telefone("113322-4567", "fixo") c.adiciona_telefone("1198888-8888", "celular") tipos = ['particular', '1198888-8888', 11988888888] for tipo in tipos: try: c.apaga_telefone(tipo) except KeyError: pass else: raise AssertionError("Não levantou erro para chave inexistente") assert c.get_telefones()['principal'] == TelefoneAtualizado("1199999-9999") assert c.get_telefones()['fixo'] == TelefoneAtualizado("113322-4567") assert c.get_telefones()['celular'] == TelefoneAtualizado("1198888-8888")
def test_08_cria_contato_erro(self): try: Contato('', '11999777888', '*****@*****.**') except CreateContactError: pass except Exception: raise AssertionError('Levantou um erro do tipo incorreto') else: raise AssertionError('Não deveria criar um contato com nome vazio') tipos_errados = [ 1, True, 3.0, None, ('nome', 'Rafael'), { 'nome': 'Rafael' } ] for item in tipos_errados: try: Contato(item, '11999777888', '*****@*****.**') except TypeError: pass except Exception: raise AssertionError('Levantou um erro do tipo incorreto') else: raise AssertionError('Não deveria criar um contato sem nome')
def test_09_adiciona_telefone(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') c1.adiciona_telefone('11987654321', 'trabalho') telefones = c1.get_telefones() assert telefones['principal'] == TelefoneAtualizado('11999777888'), ( 'o telefone não foi salvo com o valor correto no dicionário') assert telefones['trabalho'] == TelefoneAtualizado('11987654321'), ( 'o telefone não foi salvo com o valor ou a chave correta no dicionário' ) c1.adiciona_telefone('1144556677', 'casa') c1.adiciona_telefone('11-999-555-111') assert telefones['casa'] == TelefoneAtualizado('1144556677'), ( 'o telefone não foi salvo com o valor ou a chave correta no dicionário' ) assert telefones['principal'] == TelefoneAtualizado('11999555111'), ( 'o telefone principal não foi atualizado no dicionário')
def test_12_adiciona_email(self): c1 = Contato('Rafael', '11999777888', '*****@*****.**') c1.adiciona_email('*****@*****.**', 'trabalho') emails = c1.get_emails() assert emails['principal'] == Email('*****@*****.**'), ( 'o email não foi salvo com o valor correto no dicionário') assert emails['trabalho'] == Email('*****@*****.**'), ( 'o email não foi salvo com o valor ou a chave correta no dicionário' ) c1.adiciona_email('*****@*****.**', 'jogos') c1.adiciona_email('*****@*****.**') assert emails['jogos'] == Email('*****@*****.**'), ( 'o email não foi salvo com o valor ou a chave correta no dicionário' ) assert emails['principal'] == Email('*****@*****.**'), ( 'o email principal não foi atualizado no dicionário')
def test_apaga_email_tipo_nao_existe(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_email("*****@*****.**", "particular") c.adiciona_email("*****@*****.**", "trabalho") tipos = ['faculdade', 'empresa', 11988888888, '*****@*****.**'] for tipo in tipos: try: c.apaga_email(tipo) except KeyError: pass else: raise AssertionError("Não levantou erro para chave inexistente") assert c.get_emails()['principal'] == Email("*****@*****.**") assert c.get_emails()['particular'] == Email("*****@*****.**") assert c.get_emails()['trabalho'] == Email("*****@*****.**") assert c.get_emails() == {'principal': Email("*****@*****.**"), 'particular': Email("*****@*****.**"), 'trabalho': Email("*****@*****.**")}
def test_16_get_telefones(self): """ Este teste não será disponibilizado, faça a verificação com base nas instruções do enunciado """ # c1 = Contato('Rafael', '11999777888', '*****@*****.**') # c2 = Contato('Alex', '11967427007', '*****@*****.**') # c1.get_telefones() # c2.get_telefones() c = Contato("Aluno", "1199999-9999", "*****@*****.**") c.adiciona_telefone("113322-4567", "fixo") c.adiciona_telefone("1198888-8888", "celular") assert c.get_telefones() == { 'principal': TelefoneAtualizado('1199999-9999'), 'fixo': TelefoneAtualizado('113322-4567'), 'celular': TelefoneAtualizado('1198888-8888') }
def test_adiciona_telefone_invalido_1(): c = Contato("Aluno", "1199999-9999", "*****@*****.**") telefones = [ ("11332211-456789", "fixo"), ("1198888", "celular"), ('', "fixo"), ("1199-999", "principal"), ("1198888") ] for telefone in telefones: try: c.adiciona_telefone(telefone[0], telefone[1]) except ValueError: pass # except AssertionError: # assert True, 'Telefone pode conter hífens e ter de 8 a 11 dígitos' else: raise AssertionError('Telefone pode conter hífens e ter de 8 a 11 dígitos') assert not any(['fixo' in c.get_telefones()]) assert not any(['celular' in c.get_telefones()])
def test_nao_cria_contato(): contatos = [ (123, "1199999-9999", "*****@*****.**"), ('', "1199999-9999", "*****@*****.**"), ("Aluno", 11999999999, "*****@*****.**"), ("Aluno", "1199999-9999", "aluno.faculdadeimpacta.com.br") ] for contato in contatos: try: Contato(contato[0], contato[1], contato[2]) except TypeError: assert True, "Erro ao criar o contato" except ValueError: assert True, "Passado valor errado" except CreateContactError: assert True, "Não levantou o erro CreateContactError" except Exception: raise AssertionError('Levantou um erro do tipo incorreto') else: raise AssertionError('Não deveria criar um contato com nome vazio')
def test__repr__(): c = Contato("Aluno1", "115111-1111", "*****@*****.**") assert c.__repr__() == '<Contato: Aluno1>'