示例#1
0
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
示例#3
0
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')
示例#4
0
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'
示例#5
0
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'
示例#6
0
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'
示例#7
0
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"
示例#8
0
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
示例#9
0
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'
示例#10
0
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'
示例#11
0
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