def test_vend_cg_invalida(): try: Vendedor('Fulano', 20, '*****@*****.**', 10) Vendedor('Fulano', 20, '*****@*****.**', 50) except ValueError: pass else: raise AssertionError('Vendedor criado com carga horária inválida')
def test_vend_altera_cg_error(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) try: vend.altera_carga_horaria(46) except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert vend.consulta_carga_horaria() == 20, msg else: raise AssertionError('Não levantou um ValueError para carga inválida')
def test_vendedor_09_calcula_salario(): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar vendedor') try: salario = vend.calcula_salario() except Exception: raise AssertionError('Erro ao calcular salário') else: msg = 'Salário do vendedor calculado incorretamente' assert salario == 3050, msg
def test_vendedor_03_altera_carga_horaria(carga_horaria): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 45) except Exception: raise AssertionError('Erro ao criar vendedor') try: vend.carga_horaria = carga_horaria except Exception: raise AssertionError('Erro ao alterar a carga horária') else: msg = 'A carga horária não foi alterada para o novo valor' assert vend.carga_horaria == carga_horaria, msg
def test_zera_visitas_empresa(): programador = Programador("prg", 23, "*****@*****.**", 40) estagiario = Estagiario('estag', 18, '*****@*****.**', 20) vendedor1 = Vendedor("v1", 30, "*****@*****.**", 30) vendedor1.realizar_visita(3) vendedor2 = Vendedor("v2", 30, "*****@*****.**", 30) vendedor2.realizar_visita(5) funcionarios = list() funcionarios.append(programador) funcionarios.append(estagiario) funcionarios.append(vendedor1) funcionarios.append(vendedor2) empresa = Empresa("Empresa", 12345, "TI", funcionarios) assert vendedor1.email in empresa.listar_visitas() assert empresa.listar_visitas()[vendedor1.email] == 3 assert vendedor2.email in empresa.listar_visitas() assert empresa.listar_visitas()[vendedor2.email] == 5 empresa.zerar_visitas_vendedores() assert vendedor1.email in empresa.listar_visitas() assert empresa.listar_visitas()[vendedor1.email] == 0 assert vendedor2.email in empresa.listar_visitas() assert empresa.listar_visitas()[vendedor2.email] == 0 # Fazer os testes do vendedor (calcula salario, calcula aumento, aumenta visita) # Fazer os testes de erro de carga horaria # Fazer os testes de carga horaria (consulta e alteração)
def test_vendedor_06_realizar_visitas_erro_de_tipo(n): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar vendedor') try: vend.realizar_visita(n) except TypeError: pass except Exception: raise AssertionError('Levantou erro diferente de TypeError') else: raise AssertionError('Não levantou erro para entrada inválida')
def test_vendedor_11_recebe_aumento(): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar vendedor') try: vend.aumenta_salario() salario = vend.calcula_salario() except Exception: raise AssertionError('Erro ao aumentar salário') else: msg = 'Aumento do salário de vendedor calculado incorretamente' assert abs(salario - 3185) < 0.01, msg
def test_vend_realizar_visitas(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) vend.realizar_visita(3) msg = 'Não atualizou o número de visitas do vendedor corretamente' assert vend.consulta_visitas() == 3, msg vend.realizar_visita(6) assert vend.consulta_visitas() == 9, msg
def test_calcula_folha_pagamento_empresa(): programador = Programador("prg", 23, "*****@*****.**", 40) estagiario = Estagiario('estag', 18, '*****@*****.**', 20) vendedor1 = Vendedor("v1", 30, "*****@*****.**", 30) vendedor2 = Vendedor("v2", 30, "*****@*****.**", 30) funcionarios = list() funcionarios.append(programador) funcionarios.append(estagiario) funcionarios.append(vendedor1) funcionarios.append(vendedor2) empresa = Empresa("Empresa", 12345, "TI", funcionarios) folha_pagamento = empresa.folha_pagamento() assert folha_pagamento == 16745.00
def test_vendedor_04_altera_carga_horaria_invalida(carga_horaria): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 30) except Exception: raise AssertionError('Erro ao criar vendedor') try: vend.carga_horaria = carga_horaria except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert vend.carga_horaria == 30, msg except Exception: raise AssertionError('Erro diferente de ValueError') else: raise AssertionError('Não levantou ValueError para carga inválida')
def test_vendedor_05_realizar_visitas(): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar vendedor') msg = 'Não atualizou o número de visitas do vendedor corretamente' n_visitas = 0 for n in [3, 9, 5, 2]: try: vend.realizar_visita(n) except Exception: raise AssertionError('Erro ao realizar visitas') else: n_visitas += n assert vend.visitas == n_visitas, msg
def test_calcula_salario_apos_zerar_visitas_vendedor(): vendedor = Vendedor("Nome", 30, "*****@*****.**", 30) vendedor.realizar_visita(2) salario = vendedor.calcula_salario() assert salario == 4460.00 vendedor.zerar_visitas() salario = vendedor.calcula_salario() assert salario == 4400.00
def test_vendedor_02_cria_objeto_carga_horaria_invalida(carga_horaria): try: Vendedor('Fulano', 25, '*****@*****.**', carga_horaria) except ValueError: pass except Exception: raise AssertionError('Erro diferente de ValueError') else: raise AssertionError('Vendedor criado com carga horária inválida')
def test_vend_realizar_visitas_error(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) testes = ['5', 'abc', 5.2, -3, 0] for teste in testes: try: vend.realizar_visita(teste) except TypeError: assert not isinstance( teste, int), 'Levantou TypeError para entrada inteira' except ValueError: assert isinstance( teste, int), 'Levantou ValueError para entrada que não é inteira' assert teste <= 0, 'Levantou ValueError para entrada válida' except Exception: raise AssertionError('Não levantou o erro do tipo pedido') else: raise AssertionError( 'Não levantou nenhum erro para uma entrada inválida')
def test_vendedor_01_cria_objeto(): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 45) except Exception: raise AssertionError('Erro ao criar vendedor') else: assert vend.nome == 'Fulano', 'nome incorreto' assert vend.idade == 25, 'idade incorreta' assert vend.email == '*****@*****.**', 'email incorreto' assert vend.carga_horaria == 45, 'carga horária incorreta' assert vend.visitas == 0, 'visitas devem começar em zero'
def test_04_folha_pagamento(): 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_05_lista_visitas(): 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(5) vend2.realizar_visita(5) assert len(emp.listar_visitas()) == 2, "quantidade de vendedores errado" assert ( emp.listar_visitas()[vend1.email] + emp.listar_visitas()[vend2.email]) == 10, "Numero de visitas incorreto"
def test_vendedor_10_calcula_salario_2(): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar vendedor') try: vend.realizar_visita(8) vend.realizar_visita(6) vend.realizar_visita(9) salario = vend.calcula_salario() except Exception: raise AssertionError('Erro ao calcular salário') else: msg = 'Salário do vendedor calculado incorretamente' assert salario == 3740, msg
def test_03_inclui_func(): 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) funcinarios = emp.lista_fucionarios() assert len( funcinarios ) == 3, 'Lista de funcionários não contém o número correto de funcionários contratados' assert funcinarios[ 0].nome == 'Maria', 'O primeiro item da lista não é o primeiro funcionário contratado' assert funcinarios[ 1].nome == 'Ana', 'O segundo item da lista não é o segundo funcionário contratado' assert funcinarios[ 2].nome == 'Marcos', 'O terceiro item da lista não é o terceiro funcionário contratado'
def test_zera_todas_visitas(): 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.listar_visitas() == { 'Mauro': 7, 'Carla': 10 }, 'A quantidade de visitas foi retornada errada' emp.zerar_visitas_vendedores() assert emp.listar_visitas() == { 'Mauro': 0, 'Carla': 0 }, 'A quantidade de visitas foi retornada errada'
def test_vendedor_08_zerar_visitas(): try: vend = Vendedor('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar vendedor') try: vend.realizar_visita(5) vend.zerar_visitas() except Exception: raise AssertionError('Erro ao realizar e/ou zerar visitas') else: msg = 'O número de visitas não foi zerado corretamente' assert vend.visitas == 0, msg
def test_mostra_visitas_empresa(): programador = Programador("prg", 23, "*****@*****.**", 40) estagiario = Estagiario('estag', 18, '*****@*****.**', 20) vendedor1 = Vendedor("v1", 30, "*****@*****.**", 30) vendedor1.realizar_visita(3) vendedor2 = Vendedor("v2", 30, "*****@*****.**", 30) vendedor2.realizar_visita(5) funcionarios = list() funcionarios.append(programador) funcionarios.append(estagiario) funcionarios.append(vendedor1) funcionarios.append(vendedor2) empresa = Empresa("Empresa", 12345, "TI", funcionarios) assert vendedor1.email in empresa.listar_visitas() assert empresa.listar_visitas()[vendedor1.email] == 3 assert vendedor2.email in empresa.listar_visitas() assert empresa.listar_visitas()[vendedor2.email] == 5
def test_dissidio_anual(): 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 prog.calcula_salario( ) == 6300.0, 'Salário do programador calculado incorretamente' assert est.calcula_salario( ) == 1645.0, 'Salário do estagiário calculado incorretamente' assert vend1.calcula_salario( ) == 5285.0, 'Salário do vendedor calculado incorretamente' assert vend2.calcula_salario( ) == 6725.0, 'Salário do vendedor calculado incorretamente' assert emp.folha_pagamento( ) == 19955.0, 'Folha de pagamento calculada errada' emp.dissidio_anual() assert prog.calcula_salario( ) == 6615, 'Salário do programador calculado incorretamente' assert est.calcula_salario( ) == 1714.75, 'Salário do estagiário calculado incorretamente' # (1645.0 - 250) * 1.05 + 250 assert vend1.calcula_salario( ) == 5521.25, 'Salário do vendedor calculado incorretamente' # ((5285.0 - 350 - 210) * 1.05) + (350 + 210) assert vend2.calcula_salario( ) == 7028.75, 'Salário do vendedor calculado incorretamente' # ((6725.0 - 350 - 300) * 1.05) + (350 + 300) assert emp.folha_pagamento( ) == 20879.75, 'Folha de pagamento calculada errada'
def test_vend_consulta_visitas(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = 'O número de visitas deve ser iniciado em zero' assert vend.consulta_visitas() == 0, msg
def test_vend_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.consulta_visitas() == 0, msg
def test_vend_calcula_salario01(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = 'Salário do vendedor calculado incorretamente' assert vend.calcula_salario() == 3050.0, msg
def test_vend_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_vend_altera_cg(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) vend.altera_carga_horaria(45) msg = 'A carga horária não foi alterada para o novo valor' assert vend.consulta_carga_horaria() == 45, msg
def test_vend_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_vend_consulta_cg(): vend = Vendedor('Fulano', 25, '*****@*****.**', 20) msg = ('o método consulta_carga_horária não retornou o valor da ' 'carga horaria semanal') assert vend.consulta_carga_horaria() == 20, msg