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