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_est_altera_cg_error(): est = Estagiario('Fulano', 25, '*****@*****.**') try: est.altera_carga_horaria(36) except ValueError: assert est.consulta_carga_horaria() == 20 else: raise AssertionError('Trocou para carga horaria invalida')
def test_est_cg_invalida(): try: Estagiario('Fulano', 25, '*****@*****.**', 10) Estagiario('Fulano', 25, '*****@*****.**', 35) except ValueError: pass else: raise AssertionError('Estagiário criado com carga horária inválida')
def test_est_altera_cg_error(): est = Estagiario('Fulano', 25, '*****@*****.**', 20) try: est.altera_carga_horaria(36) except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert est.consulta_carga_horaria() == 20, msg else: raise AssertionError('Não levantou um ValueError para carga inválida')
def test_estagiario_05_calcula_salario(): try: est = Estagiario('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar estagiario') try: salario = est.calcula_salario() except Exception: raise AssertionError('Erro ao calcular salário') else: msg = 'Salário do estagiario calculado incorretamente' assert salario == 1645, msg
def test_estagiario_03_altera_carga_horaria(carga_horaria): try: est = Estagiario('Fulano', 25, '*****@*****.**', 30) except Exception: raise AssertionError('Erro ao criar estagiario') try: est.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 est.carga_horaria == carga_horaria, msg
def test_estagiario_06_recebe_aumento(): try: est = Estagiario('Fulano', 25, '*****@*****.**', 20) except Exception: raise AssertionError('Erro ao criar estagiario') try: est.aumenta_salario() salario = est.calcula_salario() except Exception: raise AssertionError('Erro ao aumentar salário') else: msg = 'Aumento do salário de estagiario calculado incorretamente' assert abs(salario - 1714.75) < 0.01, msg
def test_estagiario_04_altera_carga_horaria_invalida(carga_horaria): try: est = Estagiario('Fulano', 25, '*****@*****.**', 30) except Exception: raise AssertionError('Erro ao criar estagiario') try: est.carga_horaria = carga_horaria except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert est.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_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_dissidio(): prog = Programador('Cicrano', 31, '*****@*****.**') emp = Empresa('ACME', 123456789, 'Tecnologia', [prog]) est = Estagiario('Fulano', 25, '*****@*****.**') emp.contrata(est) emp.dissidio_anual() assert abs(emp.folha_pagamento() - 8329.75) < 0.01
def test_cria_est_cg_invalida(): try: Estagiario('Fulano', 25, '*****@*****.**', 10) except ValueError: pass else: raise AssertionError('Nao deveria criar com carga Horaria invalida')
def test_02_comeca_func_empresa(): est = Estagiario('Pedro', 25, '*****@*****.**', 20) emp = Empresa('ACME', 123456789, 'Tecnologia', [est]) assert len(emp.lista_fucionarios( )) == 1, 'A lista de funcionários dever começar com o valor passado' assert emp.lista_fucionarios( )[0].nome == 'Pedro', 'O funcionário não foi adicionado à lista'
def test_estagiario_02_cria_objeto_carga_horaria_invalida(carga_horaria): try: Estagiario('Fulano', 25, '*****@*****.**', carga_horaria) except ValueError: pass except Exception: raise AssertionError('Erro diferente de ValueError') else: raise AssertionError('Estagiario criado com carga horária inválida')
def test_estagiario_01_cria_objeto(): try: est = Estagiario('Fulano', 25, '*****@*****.**', 30) except Exception: raise AssertionError('Erro ao criar estagiario') else: assert est.nome == 'Fulano', 'nome incorreto' assert est.idade == 25, 'idade incorreta' assert est.email == '*****@*****.**', 'email incorreto' assert est.carga_horaria == 30, 'carga horária incorreta'
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_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_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_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_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_inclui_func(): emp = Empresa('ACME', 123456789, 'Tecnologia') est = Estagiario('Fulano', 25, '*****@*****.**') emp.contrata(est) assert len(emp.lista_fucionarios()) == 1 assert emp.lista_fucionarios()[0].nome == 'Fulano'
def test_est_recebe_aumento(): est = Estagiario('Fulano', 25, '*****@*****.**') est.aumenta_salario() assert abs(est.calcula_salario() - 1714.75) < 0.01
def test_est_calcula_salario(): est = Estagiario('Fulano', 25, '*****@*****.**') assert est.calcula_salario() == 1645
def test_est_altera_cg(): est = Estagiario('Fulano', 25, '*****@*****.**') est.altera_carga_horaria(30) assert est.consulta_carga_horaria() == 30
def test_est_consulta_cg(): est = Estagiario('Fulano', 25, '*****@*****.**') assert est.consulta_carga_horaria() == 20
def test_folha_pagamento(): prog = Programador('Cicrano', 31, '*****@*****.**') emp = Empresa('ACME', 123456789, 'Tecnologia', [prog]) est = Estagiario('Fulano', 25, '*****@*****.**') emp.contrata(est) assert emp.folha_pagamento() == 7945
def test_est_recebe_aumento(): est = Estagiario('Fulano', 25, '*****@*****.**', 20) est.aumenta_salario() msg = 'Aumento do salário do estagiário calculado incorretamente' assert abs(est.calcula_salario() - 1714.75) < 0.01, msg
def test_est_calcula_salario(): est = Estagiario('Fulano', 25, '*****@*****.**', 20) msg = 'Salário do estagiário calculado incorretamente' assert est.calcula_salario() == 1645, msg
def test_est_consulta_cg(): est = Estagiario('Fulano', 25, '*****@*****.**', 20) msg = ('o método consulta_carga_horária não retornou o valor da ' 'carga horaria semanal') assert est.consulta_carga_horaria() == 20, msg
def test_est_altera_cg(): est = Estagiario('Fulano', 25, '*****@*****.**', 20) est.altera_carga_horaria(30) msg = 'A carga horária não foi alterada para o novo valor' assert est.consulta_carga_horaria() == 30, msg