def test_06_email_funcionario_erro(self): e1 = Email('*****@*****.**') e2 = Email('*****@*****.**') e3 = Email('*****@*****.**') e4 = Email('*****@*****.**') msg = 'todos os emails criados deveriam retornar False para a property eh_impacta' assert not any([e.eh_impacta for e in [e1, e2, e3, e4]]), msg
def test__eq__(): e1 = Email("*****@*****.**") e2 = Email("*****@*****.**") e1.__eq__(Email("*****@*****.**")) e2.__eq__(Email("*****@*****.**")) assert e1.email == "*****@*****.**" assert e2.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_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_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_nao_eh_impacta(): e1 = Email('*****@*****.**') e2 = Email('*****@*****.**') e3 = Email('*****@*****.**') e4 = Email('*****@*****.**') #e5 = Email('*****@*****.**') e6 = Email("*****@*****.**") assert not any([e.eh_impacta for e in [e1, e2, e3, e4, e6] ]), "Emails deveriam retornar 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_cria_email_invalido_2(): emails = [123, 12.5, Email("*****@*****.**")] for email in emails: try: Email(email) except TypeError: pass except Exception: raise AssertionError( 'Levantou um erro de tipo diferente do pedido') else: raise AssertionError( "Não pode criar instância com e-mail inválido!")
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_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_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_cria_email_invalido_1(): 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: Email(email) except ValueError: pass except Exception: raise AssertionError( 'Levantou um erro de tipo diferente do pedido') else: raise AssertionError('Não levantou erro para email inválido')
def test_02_cria_email_erro(self): tipos_errados = [ 1, True, 3.0, None, ('email', '*****@*****.**'), { 'email': '*****@*****.**' } ] for item in tipos_errados: try: Email(item) except TypeError: pass except Exception: raise AssertionError( 'Levantou um erro de tipo diferente do pedido') else: raise AssertionError('Não levantou erro para email inválido') try: Email('*****@*****.**') except ValueError: pass except Exception: raise AssertionError( 'Levantou um erro de tipo diferente do pedido') else: raise AssertionError('Email com _ não deveria ser válido') try: Email('teste@exemplo@com') except ValueError: pass except Exception: raise AssertionError( 'Levantou um erro de tipo diferente do pedido') else: raise AssertionError('Email com 2 @ não deveria ser válido') try: Email('teste.exemplo.com') except ValueError: pass except Exception: raise AssertionError( 'Levantou um erro de tipo diferente do pedido') else: raise AssertionError('Email sem @ não deveria ser válido')
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_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_cria_email_valido(): emails = [ "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" ] for email in emails: e = Email(email) assert isinstance(e, Email) == True assert e.email == email
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_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_to_json(): e = Email("*****@*****.**") assert e.to_json() == "*****@*****.**"
def test_eh_impacta(): e1 = Email("*****@*****.**") e2 = Email('*****@*****.**') e3 = Email('*****@*****.**') assert all([e.eh_impacta for e in [e1, e2, e3]]), "Emails deveriam retornar True"
def test_01_cria_email(self): e1 = Email('*****@*****.**') msg = 'o email criado não foi salvo na property `email`' assert e1.email == '*****@*****.**', msg
def test_eh_aluno_impacta(): e = Email("*****@*****.**") assert e.eh_aluno_impacta is True
def test_nao_eh_aluno_impacta(): e = Email("*****@*****.**") assert e.eh_aluno_impacta is False
def test_03_email_aluno(self): e1 = Email('*****@*****.**') msg = 'o email criado deveria retornar True para a property eh_aluno_impacta' assert e1.eh_aluno_impacta, msg
def test_04_email_aluno_erro(self): e1 = Email('*****@*****.**') msg = 'o email criado deveria retornar False para a property eh_aluno_impacta' assert not e1.eh_aluno_impacta, msg
def test_05_email_funcionario(self): e1 = Email('*****@*****.**') e2 = Email('*****@*****.**') e3 = Email('*****@*****.**') msg = 'todos os emails criados deveriam retornar True para a property eh_impacta' assert all([e.eh_impacta for e in [e1, e2, e3]]), msg
def test__repr__(): e = Email("*****@*****.**") assert e.__repr__() == '<Email: [email protected]>'
def test__eq__2(): e1 = Email("*****@*****.**") e2 = Email("*****@*****.**") assert e1.email == "*****@*****.**" assert e2.email == "*****@*****.**"