def test_vendedor_altera_carga_horaria_invalida(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) try: vend.carga_horaria = 46 except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert vend.carga_horaria == 20, msg except Exception as erro: class_name = erro.__class__.__name__ msg = f'Erro encontrado ({class_name}) diferente de ValueError' raise AssertionError(msg) else: raise AssertionError('Não levantou ValueError para carga inválida')
def test_vendedor_realizar_visitas_erro(n_visitas): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) try: vend.realizar_visita(n_visitas) except TypeError: msg = 'Levantou TypeError para entrada do tipo int' assert not isinstance(n_visitas, int), msg except ValueError: msg = 'Não levantou TypeError para entrada de tipo diferente de int' assert isinstance(n_visitas, int), msg assert n_visitas <= 0, 'Levantou ValueError para entrada válida' except Exception as erro: class_name = erro.__class__.__name__ msg = f'Erro encontrado ({class_name}) diferente do tipo pedido' raise AssertionError(msg) else: raise AssertionError('Não levantou erro para entrada inválida')
def test_vendedor_carga_horaria_invalida(carga_horaria): try: Vendedor('Fulano', 20, '*****@*****.**', carga_horaria) except Exception as erro: class_name = erro.__class__.__name__ msg = f'Erro encontrado ({class_name}) diferente de ValueError' assert isinstance(erro, ValueError), msg else: raise AssertionError('Vendedor criado com carga horária inválida')
def test_empresa_folha_pagamento_1(): prog = Programador('Julia', 31, '*****@*****.**', 40) est = Estagiario('Pedro', 25, '*****@*****.**', 20) vend1 = Vendedor('Mauro', 41, '*****@*****.**', 35) vend2 = Vendedor('Carla', 36, '*****@*****.**', 45) emp = Empresa('ACME', 123456789, 'Tecnologia', []) emp.contrata(prog) emp.contrata(est) emp.contrata(vend1) emp.contrata(vend2) vend1.realizar_visita(7) vend2.realizar_visita(10) assert emp.folha_pagamento() == 19955.0, 'Folha de pagamento calculada errada'
def test_vendedor_realizar_visitas(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = 'Não atualizou o número de visitas do vendedor corretamente' vend.realizar_visita(3) assert vend.visitas == 3, msg vend.realizar_visita(6) assert vend.visitas == 9, msg
def test_empresa_contrata(): est = Estagiario('Maria', 25, '*****@*****.**', 20) prog = Programador('Ana', 31, '*****@*****.**', 40) vend = Vendedor('Marcos', 28, '*****@*****.**', 35) emp = Empresa('ACME', 123456789, 'Tecnologia', []) emp.contrata(est) emp.contrata(prog) emp.contrata(vend) msg = 'A equipe não contém o número correto de funcionários contratados' assert len(emp.equipe) == 3, msg msg = 'O {0} item da equipe não é o {0} funcionário contratado' assert emp.equipe[0] is est, msg.format('primeiro') assert emp.equipe[1] is prog, msg.format('segundo') assert emp.equipe[2] is vend, msg.format('terceiro')
def test_empresa_folha_pagamento_2(): prog = Programador('Julia', 31, '*****@*****.**', 40) est = Estagiario('Pedro', 25, '*****@*****.**', 20) vend1 = Vendedor('Mauro', 41, '*****@*****.**', 35) vend2 = Vendedor('Carla', 36, '*****@*****.**', 45) emp = Empresa('ACME', 123456789, 'Tecnologia', []) emp.contrata(prog) emp.contrata(est) emp.contrata(vend1) emp.contrata(vend2) vend1.realizar_visita(3) vend2.realizar_visita(5) msg = 'Folha de pagamento calculada errada' assert emp.folha_pagamento() == 19685.0, msg emp.dissidio_anual() msg = 'Folha de pagamento calculada errada após o dissidio' assert abs(emp.folha_pagamento() - 20609.75) < 0.01, msg
def test_listar_visitas_tipo(): prog = Programador('Julia', 31, '*****@*****.**', 40) est = Estagiario('Pedro', 25, '*****@*****.**', 20) vend1 = Vendedor('Mauro', 41, '*****@*****.**', 35) vend2 = Vendedor('Carla', 36, '*****@*****.**', 45) vend3 = Vendedor('Gabriel Martins', 34, '*****@*****.**', 22) emp = Empresa('ACME', 123456789, 'Tecnologia', []) emp.contrata(prog) emp.contrata(est) emp.contrata(vend1) emp.contrata(vend2) emp.contrata(vend3) vend1.realizar_visita(7) vend2.realizar_visita(10) vend3.realizar_visita(55) msg = 'O retorno da função não é o esperado.' assert emp.listar_visitas() == { '*****@*****.**': 7, '*****@*****.**': 10, '*****@*****.**': 55 }, msg
def test_vendedor_recebe_aumento(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) vend.aumenta_salario() msg = 'Aumento do salário do vendedor calculado incorretamente' assert abs(vend.calcula_salario() - 3185.0) < 0.01, msg
def test_vendedor_calcula_salario02(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) vend.realizar_visita(23) msg = 'Salário do vendedor calculado incorretamente' assert vend.calcula_salario() == 3740.0, msg
def test_vendedor_calcula_salario01(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = 'Salário do vendedor calculado incorretamente' assert vend.calcula_salario() == 3050.0, msg
def test_vendedor_zerar_visitas(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) vend.realizar_visita(5) vend.zerar_visitas() msg = 'O número de visitas não foi zerado corretamente' assert vend.visitas == 0, msg
def test_vendedor_visitas(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = 'O número de visitas deve ser iniciado em zero' assert vend.visitas == 0, msg
def test_vendedor_altera_carga_horaria(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) vend.carga_horaria = 45 msg = 'A carga horária não foi alterada para o novo valor' assert vend.carga_horaria == 45, msg
def test_vendedor_carga_horaria(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = ('a property carga_horaria não retornou o valor da ' 'carga horaria semanal') assert vend.carga_horaria == 20, msg