tests: augment test on GET rendez-vous-disponibles
gitea/ants-hub/pipeline/head This commit looks good
Details
gitea/ants-hub/pipeline/head This commit looks good
Details
This commit is contained in:
parent
446637d6ab
commit
5670296daf
|
@ -10,13 +10,23 @@ import os
|
|||
|
||||
import jsonschema
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db.models import Count
|
||||
from django.db.transaction import atomic
|
||||
from django.http import JsonResponse
|
||||
from django.utils.timezone import now
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.generic import View
|
||||
|
||||
from ants_hub.data.models import Collectivite, Horaire, HoraireList, Lieu, Raccordement, RendezVous, TypeDeRdv
|
||||
from ants_hub.data.models import (
|
||||
Collectivite,
|
||||
Horaire,
|
||||
HoraireList,
|
||||
Lieu,
|
||||
Plage,
|
||||
Raccordement,
|
||||
RendezVous,
|
||||
TypeDeRdv,
|
||||
)
|
||||
|
||||
with open(os.path.join(os.path.dirname(__file__), '..', 'static', 'schemas', 'rdv-disponibles.json')) as fd:
|
||||
RENDEZ_VOUS_DISPONIBLES_SCHEMA = json.load(fd)
|
||||
|
@ -67,8 +77,11 @@ class RendezVousDisponibleView(View):
|
|||
'lieux': lieux_data,
|
||||
'nombre_de_lieux': collectivite.lieux.count(),
|
||||
'nombre_de_pre_demandes_actives': RendezVous.objects.filter(
|
||||
date__lt=now(), lieu__collectivite=collectivite
|
||||
date__gte=now(), lieu__collectivite=collectivite
|
||||
).count(),
|
||||
'nombre_de_jours_avec_rdv_disponibles': Plage.objects.filter(
|
||||
lieu__collectivite=collectivite, date__gte=now().date()
|
||||
).aggregate(Count('date'))['date__count'],
|
||||
}
|
||||
for key in ['logo_url', 'rdv_url', 'gestion_url', 'annulation_url']:
|
||||
if getattr(collectivite, key, None):
|
||||
|
@ -82,10 +95,10 @@ class RendezVousDisponibleView(View):
|
|||
'ville': lieu.ville,
|
||||
'longitude': lieu.longitude,
|
||||
'latitude': lieu.latitude,
|
||||
'nombre_de_pre_demandes_actives': lieu.rdvs.filter(date__lt=now()).count(),
|
||||
'nombre_de_jours_avec_rdv_disponibles': lieu.plages.filter(date__lt=now())
|
||||
.distinct('date')
|
||||
.count(),
|
||||
'nombre_de_pre_demandes_actives': lieu.rdvs.filter(date__gte=now()).count(),
|
||||
'nombre_de_jours_avec_rdv_disponibles': lieu.plages.filter(
|
||||
date__gte=now().date()
|
||||
).aggregate(Count('date'))['date__count'],
|
||||
}
|
||||
for key in ['url', 'logo_url', 'rdv_url', 'gestion_url', 'annulation_url']:
|
||||
if getattr(lieu, key, None):
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
pytest
|
||||
pytest-cov
|
||||
pytest-django
|
||||
freezegun
|
||||
django-webtest
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
# ANTS-Hub - Copyright (C) Entr'ouvert
|
||||
|
||||
import pytest
|
||||
|
||||
from ants_hub.data.models import Raccordement
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(freezer):
|
||||
freezer.move_to('2023-03-03T12:00:00+02:00')
|
||||
|
||||
|
||||
def test_ping(django_app, db):
|
||||
django_app.get('/api/chrono/ping/', status=401)
|
||||
django_app.set_authorization(('Basic', ('abcd', '')))
|
||||
|
@ -223,3 +230,32 @@ def test_rendez_vous_dispomibles(django_app, db):
|
|||
'rdv_deleted': 1,
|
||||
},
|
||||
}
|
||||
|
||||
assert django_app.get('/api/chrono/rendez-vous-disponibles/').json == {
|
||||
'err': 0,
|
||||
'collectivites': [
|
||||
{
|
||||
'id': 'col1',
|
||||
'nom': 'Saint-Didier',
|
||||
'url': 'https://saint-didier.fr/rdv/',
|
||||
'created': '2023-03-03T10:00:00+00:00',
|
||||
'last_update': '2023-03-03T10:00:00+00:00',
|
||||
'lieux': [
|
||||
{
|
||||
'id': 'lieu1',
|
||||
'latitude': 2.3,
|
||||
'longitude': 1.5,
|
||||
'nom': 'Mairie de Saint-Didier',
|
||||
'numero_rue': '2 rue du four',
|
||||
'code_postal': '99999',
|
||||
'ville': 'Saint-Didier',
|
||||
'nombre_de_jours_avec_rdv_disponibles': 1,
|
||||
'nombre_de_pre_demandes_actives': 0,
|
||||
}
|
||||
],
|
||||
'nombre_de_jours_avec_rdv_disponibles': 1,
|
||||
'nombre_de_lieux': 1,
|
||||
'nombre_de_pre_demandes_actives': 0,
|
||||
}
|
||||
],
|
||||
}
|
||||
|
|
|
@ -1 +1,10 @@
|
|||
# ANTS-Hub - Copyright (C) Entr'ouvert
|
||||
|
||||
import freezegun
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def freezer():
|
||||
with freezegun.freeze_time() as freezer:
|
||||
yield freezer
|
||||
|
|
Loading…
Reference in New Issue