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_zerar_visitas_vendedores(): 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 emp.zerar_visitas_vendedores() msg = 'A função zerar_visitas_vendedores não zerou a visita de todos os vendedores' assert emp.listar_visitas() == { '*****@*****.**': 0, '*****@*****.**': 0, '*****@*****.**': 0 }, 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_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_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_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_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_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_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_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_folha_pagamento(): prog = Programador('Cicrano', 31, '*****@*****.**') emp = Empresa('ACME', 123456789, 'Tecnologia', [prog]) est = Estagiario('Fulano', 25, '*****@*****.**') emp.contrata(est) assert emp.folha_pagamento() == 7945