Project

General

Profile

Download (3.7 KB) Statistics
| Branch: | Tag: | Revision:

calebasse / calebasse / agenda / tests.py @ 72dbfaca

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
"""
7
from datetime import datetime
8

    
9
from django.test import TestCase
10
from django.contrib.auth.models import User
11
from datetime import datetime, date
12
from dateutil import rrule
13

    
14
from calebasse.agenda.models import Occurrence, Event
15
from calebasse.actes.models import EventAct
16
from calebasse.dossiers.models import PatientRecord
17
from calebasse.dossiers.models import create_patient
18
from calebasse.ressources.models import ActType, Service, WorkerType
19
from calebasse.personnes.models import Worker
20

    
21
class EventTest(TestCase):
22
    def setUp(self):
23
        self.creator = User.objects.create(username='John')
24

    
25
    def test_create_events(self):
26
        event = Event.objects.create_event("test 1", 'un test', description='42 42',
27
            start_datetime=datetime(2012, 10, 20, 13), end_datetime=datetime(2012, 10, 20, 14),
28
            freq=rrule.WEEKLY, count=3)
29
        self.assertEqual(str(event), 'test 1')
30

    
31
    def test_create_appointments(self):
32
        service_camsp = Service.objects.create(name='CAMSP')
33

    
34
        patient = create_patient('Jean', 'Lepoulpe', service_camsp, self.creator, date_selected=datetime(2020, 10, 5))
35
        wtype = WorkerType.objects.create(name='ElDoctor', intervene=True)
36
        therapist1 = Worker.objects.create(first_name='Bob', last_name='Leponge', type=wtype)
37
        therapist2 = Worker.objects.create(first_name='Jean', last_name='Valjean', type=wtype)
38
        therapist3 = Worker.objects.create(first_name='Pierre', last_name='PaulJacques', type=wtype)
39
        act_type = ActType.objects.create(name='trepanation')
40
        service = Service.objects.create(name='CMPP')
41
        act_event = EventAct.objects.create_patient_appointment(self.creator, 'RDV avec M X', patient,
42
                [therapist1, therapist2], act_type, service,
43
                start_datetime=datetime(2020, 10, 2, 7, 15),
44
                end_datetime=datetime(2020, 10, 2, 9, 20),
45
                freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2040, 10, 2))
46
        act_event2 = EventAct.objects.create_patient_appointment(self.creator, 'RDV avec M Y', patient, [therapist3],
47
                act_type, service, start_datetime=datetime(2020, 10, 2, 10, 15),
48
                end_datetime=datetime(2020, 10, 2, 12, 20),
49
                freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2))
50
        self.assertEqual(str(act_event), 'Rdv le 2020-10-02 07:15:00 de Jean Lepoulpe avec Bob Leponge, Jean Valjean pour trepanation (1)')
51
        self.assertEqual(
52
                str(Occurrence.objects.daily_occurrences(datetime(2020, 10, 8), [therapist2])),
53
                '[]'
54
                )
55
        self.assertEqual(
56
                str(Occurrence.objects.daily_occurrences(datetime(2020, 10, 9), [therapist2])),
57
                '[<Occurrence: RDV avec M X: 2020-10-09T07:15:00>]'
58
                )
59
        self.assertEqual(
60
                str(Occurrence.objects.daily_occurrences(datetime(2020, 10, 9), [therapist3])),
61
                '[<Occurrence: RDV avec M Y: 2020-10-09T10:15:00>]'
62
                )
63

    
64
    def test_create_holiday(self):
65
        """docstring for test_create_event"""
66
        wtype = WorkerType.objects.create(name='ElProfessor', intervene=True)
67
        user = Worker.objects.create(first_name='Jean-Claude', last_name='Van Damme', type=wtype)
68
        event = Event.objects.create_holiday(date(2012, 12, 12), date(2012,12,30),
69
                [user], motive='tournage d\'un film')
70
        self.assertEqual(str(event), 'Conge')
71
        #event = user.event.occurrence_set.all()[0]
72
        #self.assertEqual(event.end_time - event.start_time, timedelta(0, 7200))
(8-8/10)