Revision e411dc8b
Added by Mikaël Ates about 12 years ago
calebasse/actes/tests.py | ||
---|---|---|
1 |
""" |
|
2 |
This file demonstrates writing tests using the unittest module. These will pass |
|
3 |
when you run "manage.py test". |
|
4 |
|
|
5 |
Replace this with more appropriate tests for your application. |
|
6 |
""" |
|
1 |
# -*- coding: utf-8 -*- |
|
2 |
from datetime import datetime |
|
3 |
from dateutil import rrule |
|
7 | 4 |
|
8 | 5 |
from django.test import TestCase |
6 |
from django.contrib.auth.models import User |
|
7 |
|
|
8 |
from validation import automated_validation, are_all_acts_of_the_day_locked, \ |
|
9 |
get_days_with_acts_not_locked |
|
10 |
from calebasse.actes.models import EventAct |
|
11 |
from calebasse.dossiers.models import create_patient |
|
12 |
from calebasse.ressources.models import ActType, Service, WorkerType |
|
13 |
from calebasse.personnes.models import Worker |
|
14 |
|
|
15 |
|
|
16 |
class ActTest(TestCase): |
|
17 |
def test_act_validation(self): |
|
18 |
wtype = WorkerType.objects.create(name='ElDoctor', intervene=True) |
|
19 |
therapist1 = Worker.objects.create(first_name='Bob', last_name='Leponge', type=wtype) |
|
20 |
therapist2 = Worker.objects.create(first_name='Jean', last_name='Valjean', type=wtype) |
|
21 |
therapist3 = Worker.objects.create(first_name='Pierre', last_name='PaulJacques', type=wtype) |
|
22 |
act_type = ActType.objects.create(name='trepanation') |
|
23 |
service = Service.objects.create(name='CMPP') |
|
24 |
|
|
25 |
creator = User.objects.create(username='John') |
|
26 |
patient = create_patient('John', 'Doe', service, creator) |
|
27 |
patient2 = create_patient('Jimmy', 'Claff', service, creator) |
|
28 |
patient3 = create_patient('Bouba', 'Lourson', service, creator) |
|
29 |
|
|
30 |
act_event = EventAct.objects.create_patient_appointment(creator, 'RDV avec M X', patient, |
|
31 |
[therapist1, therapist2], act_type, service, |
|
32 |
start_datetime=datetime(2020, 10, 2, 7, 15), |
|
33 |
end_datetime=datetime(2020, 10, 2, 9, 20), |
|
34 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2040, 10, 2)) |
|
35 |
act_event2 = EventAct.objects.create_patient_appointment(creator, 'RDV avec M Y', patient, [therapist3], |
|
36 |
act_type, service, start_datetime=datetime(2020, 10, 2, 10, 15), |
|
37 |
end_datetime=datetime(2020, 10, 2, 12, 20), |
|
38 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2)) |
|
39 |
act_event3 = EventAct.objects.create_patient_appointment(creator, 'RDV avec M X', patient2, |
|
40 |
[therapist1, therapist2], act_type, service, |
|
41 |
start_datetime=datetime(2020, 10, 2, 7, 15), |
|
42 |
end_datetime=datetime(2020, 10, 2, 9, 20), |
|
43 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2040, 10, 2)) |
|
44 |
act_event4 = EventAct.objects.create_patient_appointment(creator, 'RDV avec M Y', patient3, [therapist3], |
|
45 |
act_type, service, start_datetime=datetime(2020, 10, 2, 10, 15), |
|
46 |
end_datetime=datetime(2020, 10, 2, 12, 20), |
|
47 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2)) |
|
48 |
act_event5 = EventAct.objects.create_patient_appointment(creator, 'RDV avec M Y', patient3, [therapist3], |
|
49 |
act_type, service, start_datetime=datetime(2020, 10, 3, 10, 15), |
|
50 |
end_datetime=datetime(2020, 10, 3, 12, 20), |
|
51 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2)) |
|
52 |
act_event6 = EventAct.objects.create_patient_appointment(creator, 'RDV avec M Z', patient, [therapist3], |
|
53 |
act_type, service, start_datetime=datetime(2020, 10, 2, 10, 15), |
|
54 |
end_datetime=datetime(2020, 10, 2, 12, 20), |
|
55 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2)) |
|
56 |
act_event7 = EventAct.objects.create_patient_appointment(creator, 'RDV avec M Z', patient, [therapist3], |
|
57 |
act_type, service, start_datetime=datetime(2020, 10, 4, 10, 15), |
|
58 |
end_datetime=datetime(2020, 10, 4, 12, 20), |
|
59 |
freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2)) |
|
60 |
|
|
61 |
act_event3.set_state('ABS_EXC', creator) |
|
62 |
act_event6.set_state('VALIDE', creator) |
|
9 | 63 |
|
64 |
result = automated_validation(datetime(2020, 10, 2, 12, 20), service, creator) |
|
10 | 65 |
|
11 |
class SimpleTest(TestCase): |
|
12 |
def test_basic_addition(self): |
|
13 |
""" |
|
14 |
Tests that 1 + 1 always equals 2. |
|
15 |
""" |
|
16 |
self.assertEqual(1 + 1, 2) |
|
66 |
self.assertTrue(act_event.is_state('VALIDE')) |
|
67 |
self.assertTrue(act_event2.is_state('ACT_DOUBLE')) |
|
68 |
self.assertTrue(act_event3.is_state('ABS_EXC')) |
|
69 |
self.assertTrue(act_event4.is_state('VALIDE')) |
|
70 |
self.assertTrue(act_event5.is_state('NON_VALIDE')) |
|
71 |
self.assertTrue(act_event6.is_state('ACT_DOUBLE')) |
|
72 |
self.assertEqual(result, (5,2,1,2)) |
|
73 |
self.assertTrue(are_all_acts_of_the_day_locked(datetime(2020, 10, 2, 12, 20))) |
|
74 |
self.assertFalse(are_all_acts_of_the_day_locked(datetime(2020, 10, 3, 12, 20))) |
|
75 |
self.assertFalse(are_all_acts_of_the_day_locked(datetime(2020, 10, 4, 12, 20))) |
|
76 |
self.assertEqual(get_days_with_acts_not_locked(datetime(2020, 10, 2), datetime(2020, 10, 4)), |
|
77 |
[datetime(2020, 10, 3, 0, 0), datetime(2020, 10, 4, 0, 0)]) |
Also available in: Unified diff
actes: acts creation and act validation tests.