Files
django-maraudes/maraudes/tests.py

100 lines
2.7 KiB
Python

import datetime
import random
from calendar import monthrange
from django.test import TestCase
from .models import Maraude, Maraudeur
# Create your tests here.
from maraudes_project.base_data import MARAUDEURS
MARAUDE_DAYS = [
True, True, False, True, True, False, False
]
def get_maraude_days(start, end):
""" Iterator that returns date of maraude within start-end range """
maraude_days = []
first_loop = True
for m in range(start.month, end.month + 1):
start_day = 1
if first_loop:
start_day = start.day
first_loop = False
month_range = monthrange(start.year, m)[1]
for d in range(start_day, month_range + 1):
date = datetime.date(start.year, m, d)
if MARAUDE_DAYS[date.weekday()]:
maraude_days.append(date)
return maraude_days
class MaraudeManagerTestCase(TestCase):
def setUp(self):
for maraudeur in MARAUDEURS:
Maraudeur.objects.create(
**maraudeur
)
self.maraudeurs = Maraudeur.objects.all()
#Set up Référent de la Maraude
ref = self.maraudeurs[0]
Maraudeur.objects.set_referent(ref.first_name, ref.last_name)
l = len(self.maraudeurs)
today = datetime.date.today()
start_date = today.replace(month=today.month - 1 if today.month > 1 else 12,
day=1)
end_date = today.replace(month=today.month + 1 if today.month < 12 else 1,
day=28)
for i, date in enumerate(get_maraude_days(start_date, end_date)):
i = i % l
if i == 0:
replacement = random.randint(1, l-1)
binome = random.randint(1, l-1)
while binome == replacement:
binome = random.randint(1, l-1)
Maraude.objects.create(
date=date,
referent=self.maraudeurs[replacement],
binome=self.maraudeurs[binome], # Avoid 0 = referent
)
else:
Maraude.objects.create(
date=date,
referent=ref,
binome=self.maraudeurs[i]
)
def test_future_maraudes(self):
""" La liste des futures maraudes """
pass
def test_past_maraudes(self):
pass
def test_get_next_maraude(self):
pass
def test_get_next_of(self):
pass
def test_all_of_with_referent(self):
pass
def test_all_of_with_maraudeur(self):
pass
class MaraudeTestCase(TestCase):
def test_est_terminee(self):
pass
class RencontreTestCase(TestCase):
pass