119 lines
5.3 KiB
Python
119 lines
5.3 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'], [])
|