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