Project

General

Profile

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

calebasse / calebasse / agenda / tests.py @ 74ba9776

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

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

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

    
19
class EventTest(TestCase):
20

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

    
27
    def test_create_appointments(self):
28
        patient = PatientRecord.objects.create(first_name='Jean', last_name='Le Pouple')
29
        wtype = WorkerType.objects.create(name='ElDoctor', intervene=True)
30
        therapist1 = Worker.objects.create(first_name='Bob', last_name='Leponge', type=wtype)
31
        therapist2 = Worker.objects.create(first_name='Jean', last_name='Valjean', type=wtype)
32
        therapist3 = Worker.objects.create(first_name='Pierre', last_name='PaulJacques', type=wtype)
33
        act_type = ActType.objects.create(name='trepanation')
34
        service = Service.objects.create(name='CMPP')
35
        act_event = EventAct.objects.create_patient_appointment('RDV avec M X', patient,
36
                [therapist1, therapist2], act_type, service,
37
                start_datetime=datetime(2020, 10, 2, 7, 15),
38
                end_datetime=datetime(2020, 10, 2, 9, 20),
39
                freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2040, 10, 2))
40
        act_event2 = EventAct.objects.create_patient_appointment('RDV avec M Y', patient, [therapist3],
41
                act_type, service, start_datetime=datetime(2020, 10, 2, 10, 15),
42
                end_datetime=datetime(2020, 10, 2, 12, 20),
43
                freq=rrule.WEEKLY, byweekday=rrule.FR, until=datetime(2021, 10, 2))
44
        self.assertEqual(str(act_event), 'RDV avec M X')
45
        self.assertEqual(
46
                str(Occurrence.objects.daily_occurrences(datetime(2020, 10, 8), [therapist2])),
47
                '[]'
48
                )
49
        self.assertEqual(
50
                str(Occurrence.objects.daily_occurrences(datetime(2020, 10, 9), [therapist2])),
51
                '[<Occurrence: RDV avec M X: 2020-10-09T07:15:00>]'
52
                )
53
        self.assertEqual(
54
                str(Occurrence.objects.daily_occurrences(datetime(2020, 10, 9), [therapist3])),
55
                '[<Occurrence: RDV avec M Y: 2020-10-09T10:15:00>]'
56
                )
57

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

    
(8-8/10)