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_prog_cg_invalida(): try: Programador('Fulano', 25, '*****@*****.**', 15) Programador('Fulano', 25, '*****@*****.**', 42) except ValueError: pass else: raise AssertionError('Programador criado com carga horária inválida')
def test_prog_altera_cg_error(): prog = Programador('Fulano', 25, '*****@*****.**') try: prog.altera_carga_horaria(16) except ValueError: assert prog.consulta_carga_horaria() == 40 else: raise AssertionError('Trocou para carga horaria invalida')
def test_prog_altera_cg_error(): prog = Programador('Fulano', 25, '*****@*****.**', 40) try: prog.altera_carga_horaria(16) except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert prog.consulta_carga_horaria() == 40, msg else: raise AssertionError('Não levantou um ValueError para carga inválida')
def test_programador_05_calcula_salario(): try: prog = Programador('Fulano', 25, '*****@*****.**', 40) except Exception: raise AssertionError('Erro ao criar programador') try: salario = prog.calcula_salario() except Exception: raise AssertionError('Erro ao calcular salário') else: msg = 'Salário do programador calculado incorretamente' assert salario == 6300, msg
def test_programador_03_altera_carga_horaria(carga_horaria): try: prog = Programador('Fulano', 25, '*****@*****.**', 40) except Exception: raise AssertionError('Erro ao criar programador') try: prog.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 prog.carga_horaria == carga_horaria, msg
def test_programador_06_recebe_aumento(): try: prog = Programador('Fulano', 25, '*****@*****.**', 40) except Exception: raise AssertionError('Erro ao criar programador') try: prog.aumenta_salario() salario = prog.calcula_salario() except Exception: raise AssertionError('Erro ao aumentar salário') else: msg = 'Aumento do salário de programador calculado incorretamente' assert salario == 6615, msg
def test_programador_04_altera_carga_horaria_invalida(carga_horaria): try: prog = Programador('Fulano', 25, '*****@*****.**', 40) except Exception: raise AssertionError('Erro ao criar programador') try: prog.carga_horaria = carga_horaria except ValueError: msg = 'A carga horaria foi alterada antes de levantar o ValueError' assert prog.carga_horaria == 40, 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_prog_cg_invalida(): try: Programador('Fulano', 25, '*****@*****.**', 60) except ValueError: pass else: raise AssertionError('Nao deveria criar com carga Horaria invalida')
def test_programador_02_cria_objeto_carga_horaria_invalida(carga_horaria): try: Programador('Fulano', 25, '*****@*****.**', carga_horaria) except ValueError: pass except Exception: raise AssertionError('Erro diferente de ValueError') else: raise AssertionError('Programador criado com carga horária inválida')
def test_programador_01_cria_objeto(): try: prog = Programador('Fulano', 25, '*****@*****.**', 40) except Exception: raise AssertionError('Erro ao criar programador') else: assert prog.nome == 'Fulano', 'nome incorreto' assert prog.idade == 25, 'idade incorreta' assert prog.email == '*****@*****.**', 'email incorreto' assert prog.carga_horaria == 40, '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_prog_recebe_aumento(): prog = Programador('Fulano', 25, '*****@*****.**') prog.aumenta_salario() assert prog.calcula_salario() == 6615
def test_prog_calcula_salario(): prog = Programador('Fulano', 25, '*****@*****.**') assert prog.calcula_salario() == 6300
def test_calcula_salario_programador(): programador = Programador("Nome", 23, "*****@*****.**", 40) salario = programador.calcula_salario() assert salario == 6300.00
def test_prog_altera_cg(): prog = Programador('Fulano', 25, '*****@*****.**') prog.altera_carga_horaria(36) assert prog.consulta_carga_horaria() == 36
def test_aumento_salario_programador(): programador = Programador("Nome", 23, "*****@*****.**", 40) programador.aumenta_salario() assert programador.calcula_salario() == 6615.00
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_prog_recebe_aumento(): prog = Programador('Fulano', 25, '*****@*****.**', 40) prog.aumenta_salario() msg = 'Aumento do salário de programador calculado incorretamente' assert prog.calcula_salario() == 6615, msg
def test_prog_calcula_salario(): prog = Programador('Fulano', 25, '*****@*****.**', 40) msg = 'Salário do programador calculado incorretamente' assert prog.calcula_salario() == 6300, msg
def test_prog_consulta_cg(): prog = Programador('Fulano', 25, '*****@*****.**', 40) msg = ('o método consulta_carga_horária não retornou o valor da ' 'carga horaria semanal') assert prog.consulta_carga_horaria() == 40, msg
def test_prog_altera_cg(): prog = Programador('Fulano', 25, '*****@*****.**', 40) prog.altera_carga_horaria(36) msg = 'A carga horária não foi alterada para o novo valor' assert prog.consulta_carga_horaria() == 36, msg