mirror of https://github.com/interlegis/sigi.git
Marcio Mazza
10 years ago
3 changed files with 54 additions and 65 deletions
@ -0,0 +1,31 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from django import forms |
|||
import pytest |
|||
from datetime import date |
|||
|
|||
from sigi.apps.servidores.forms import valida_data_inicial_menor_que_final, Periodo, periodos_se_sobrepoe |
|||
|
|||
|
|||
@pytest.mark.parametrize('data', [ |
|||
dict(ini=1, fim=2), |
|||
pytest.mark.xfail(raises=forms.ValidationError)(dict(ini=2, fim=1)), |
|||
pytest.mark.xfail(raises=forms.ValidationError)(dict(ini=1, fim=1)), |
|||
]) |
|||
def test_valida_data_inicial_menor_que_final(data): |
|||
valida_data_inicial_menor_que_final(data, 'ini', 'fim') |
|||
|
|||
|
|||
periodos = [ |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2001, 1, 1), date(2002, 2, 2)), True], # um dia de interseção |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2001, 1, 2), date(2002, 2, 2)), False], # exatamente um dia após |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2000, 12, 2), date(2002, 2, 2)), True], |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2014, 1, 1), date(2014, 2, 2)), False], |
|||
] |
|||
|
|||
# para testar que a ordem dos parametros nao importa |
|||
periodos_trocados = [[b, a, res] for [a, b, res] in periodos] |
|||
|
|||
|
|||
@pytest.mark.parametrize('periodo1, periodo2, resultado', periodos + periodos_trocados) |
|||
def test_periodos_se_sobrepoe(periodo1, periodo2, resultado): |
|||
assert periodos_se_sobrepoe(periodo1, periodo2) == resultado |
@ -1,42 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
|
|||
def valida_data(data_inicio, data_final): |
|||
"""Função responsável por validar se o intervalo das |
|||
datas estão erradas, ou seja, se a data de início está |
|||
maior ou igual a data final. |
|||
|
|||
Caso seja maior ou igual retornará ``True``, caso contrário |
|||
retornará ``False``. |
|||
""" |
|||
if data_inicio >= data_final: |
|||
return True |
|||
else: |
|||
return False |
|||
|
|||
|
|||
def valida_periodo_data(di01, df01, di02, df02): |
|||
"""Função responsável por validar dois períodos de datas. |
|||
Isso é usado para verificar se determinado servidor exerceu |
|||
mais de uma função dentro de determinados períodos descritos |
|||
abaixo: |
|||
|
|||
1 - A segunda função não pode ter exercido ao mesmo tempo que |
|||
a primeira função. Exemplo: |
|||
|
|||
Primeiro Função: 01/05/2011 -- 01/11/2011 |
|||
Segundo Função: 01/05/2011 -- 01/11/2011 |
|||
|
|||
2 - A segunda função não pode ter exercido, dentro do período |
|||
da primeira função. Exemplo: |
|||
|
|||
Primeira Função: 01/05/2011 -- 01/11/2011 |
|||
Segunda Função: 02/05/2011 -- 30/10/2011 |
|||
""" |
|||
# Verificando a primeira situação |
|||
if di01 == di02 and df01 == df02: |
|||
return True |
|||
elif ((di01 >= di02) or (di02 <= df01)) and df01 <= df02: |
|||
return True |
|||
else: |
|||
return False |
Loading…
Reference in new issue