150 lines
5.1 KiB
Python
150 lines
5.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import json
|
|
import datetime
|
|
from random import randint
|
|
|
|
from django.test import TestCase
|
|
from django.test.client import Client
|
|
|
|
from django.core.urlresolvers import reverse
|
|
from django.utils.encoding import force_text
|
|
|
|
from passerelle_montpellier_encombrants.models import (
|
|
EncombrantsManagement,
|
|
Commune,
|
|
Sector,
|
|
CollectDay,
|
|
Street,
|
|
)
|
|
|
|
maurin_streets = (
|
|
'CHE DES JARDINS DE MAGUELONE',
|
|
'RTE DEPARTEMENTALE 132',
|
|
'CHE DE SAINT-HUBERT',
|
|
'PLAN DU MAS DE SARDAN',
|
|
'R DES ROBINIERS',
|
|
)
|
|
|
|
lattes_streets = (
|
|
'AV DE BOIRARGUES',
|
|
'RPT DE LA FONTVIN',
|
|
'PLAN ROSSINI',
|
|
'R DES CYCLAMENS',
|
|
'RTE DEPARTEMENTALE 172',
|
|
'CHE DU MAS DE CAUSSE À L\'ESTELLE',
|
|
)
|
|
|
|
|
|
class EncombrantsTestCase(TestCase):
|
|
fixtures = []
|
|
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.instance = EncombrantsManagement.objects.create(
|
|
title='montpellier', slug='montpellier', description='encombrants'
|
|
)
|
|
self.now = datetime.datetime.now()
|
|
for mail, insee, name in (
|
|
('cournonsec@montpellier3m.fr', '34087', 'Cournonsec'),
|
|
('jacou@montpellier3m.fr', '34120', 'Jacou'),
|
|
('castelnau@montpellier3m.fr', '34057', 'Castelnau'),
|
|
('prades@montpellier3m.fr', '34217', 'Prades'),
|
|
('sussargues@montpellier3m.fr', '34307', 'Sussargues'),
|
|
):
|
|
sector = Sector.objects.create(contact_email=mail)
|
|
commune = Commune.objects.create(sector=sector, insee=insee, name=name)
|
|
for i in range(2, randint(3, 10)):
|
|
when = self.now + datetime.timedelta(days=i)
|
|
CollectDay.objects.create(sector=sector, date=when)
|
|
|
|
def test_collectdays(self):
|
|
for commune in Commune.objects.all():
|
|
r = self.client.get(
|
|
reverse(
|
|
'montpellier-encombrants-available-days',
|
|
kwargs={'slug': self.instance.slug, 'insee': commune.insee},
|
|
)
|
|
)
|
|
data = json.loads(force_text(r.content))
|
|
|
|
def test_collectdays_in_communes_with_street(self):
|
|
|
|
maurin_sector = Sector.objects.create(contact_email='maurin@montpellier3m.fr')
|
|
maurin_commune = Commune.objects.create(sector=maurin_sector, name='Maurin', insee='34970')
|
|
|
|
lattes_sector = Sector.objects.create(contact_email='lattes@montpellier3m.fr')
|
|
lattes_commune = Commune.objects.create(sector=lattes_sector, name='Lattes', insee='34970')
|
|
|
|
for s in maurin_streets:
|
|
Street.objects.create(commune=maurin_commune, name=s)
|
|
|
|
CollectDay.objects.create(sector=maurin_sector, date=self.now + datetime.timedelta(days=2))
|
|
|
|
# Maurin
|
|
r = self.client.get(
|
|
reverse(
|
|
'montpellier-encombrants-available-days',
|
|
kwargs={'slug': self.instance.slug, 'insee': '34970'},
|
|
),
|
|
{'adresse': 'PLAN DU MAS DE SARDAN'},
|
|
)
|
|
data = json.loads(force_text(r.content))
|
|
# self.assertNotEqual(data['data'], [])
|
|
|
|
# Lattes
|
|
for s in lattes_streets:
|
|
Street.objects.create(commune=lattes_commune, name=s)
|
|
|
|
r = self.client.get(
|
|
reverse(
|
|
'montpellier-encombrants-available-days',
|
|
kwargs={'slug': self.instance.slug, 'insee': '34970'},
|
|
),
|
|
{'adresse': 'ROUTE DEPARTEMENTALE 172'},
|
|
)
|
|
data = json.loads(force_text(r.content))
|
|
# self.assertEqual(data['data'], [])
|
|
|
|
CollectDay.objects.create(sector=lattes_sector, date=self.now + datetime.timedelta(days=4))
|
|
|
|
r = self.client.get(
|
|
reverse(
|
|
'montpellier-encombrants-available-days',
|
|
kwargs={'slug': self.instance.slug, 'insee': '34970'},
|
|
),
|
|
{'adresse': 'ROUTE DEPARTEMENTALE 172'},
|
|
)
|
|
data = json.loads(force_text(r.content))
|
|
self.assertNotEqual(data['data'], [])
|
|
|
|
def test_collectdays_nonexisting_street(self):
|
|
r = self.client.get(
|
|
reverse(
|
|
'montpellier-encombrants-available-days',
|
|
kwargs={'slug': self.instance.slug, 'insee': '34970'},
|
|
),
|
|
{'adresse': 'Nonexisting street'},
|
|
)
|
|
data = json.loads(force_text(r.content))
|
|
self.assertEqual(data['data'], [])
|
|
|
|
def test_collectdays_random_case_street(self):
|
|
lattes_sector = Sector.objects.create(contact_email='lattes@montpellier3m.fr')
|
|
lattes_commune = Commune.objects.create(sector=lattes_sector, name='Lattes', insee='34970')
|
|
|
|
for s in lattes_streets:
|
|
Street.objects.create(commune=lattes_commune, name=s)
|
|
|
|
CollectDay.objects.create(sector=lattes_sector, date=self.now + datetime.timedelta(days=10))
|
|
|
|
r = self.client.get(
|
|
reverse(
|
|
'montpellier-encombrants-available-days',
|
|
kwargs={'slug': self.instance.slug, 'insee': '34970'},
|
|
),
|
|
{'adresse': 'route departementale 172'},
|
|
)
|
|
data = json.loads(force_text(r.content))
|
|
self.assertNotEqual(data['data'], [])
|