Source code for apps.rcmessages.tests

# -*- coding: utf-8 -*-
"""
Module containing message tests.

:subtitle:`Class definitions:`
"""
from core.unittest.baseunittest import BaseUnitTest
from apps.rcmessages.models import RCMessage
from apps.healthperson.secretariat.models import Secretary


[docs]class RCMessageTest(BaseUnitTest): """ Test adding and viewing messages. """ fixtures = ['test_data/test_users.json', ]
[docs] def test_messages(self): """ Test adding messages with different senders and test if encryption works correctly. """ # print 'Running integration messages tests' self.login('gerald@example.com') res = self.post('/patient/search/', {'last_name': 'davis'}, status_code=200) patient = res.context['patients'][0] session_key = self.get_session_key(patient.health_person_id) url = '/messages/patient/' + session_key + '/add/' res = self.get(url) subject = 'Bericht van uitslag.' internal_message = 'Er zijn geen opmerkelijke bevindingen gedaan.' form = res.context_data['form'] form1 = form.__class__(initial={'subject': subject, 'internal_message': internal_message}) post_data = self.get_post_data(form1) res = self.post(url, post_data, status_code=302) res = self.get(res.url) # Check picking secretary if healthprofessional not set message = RCMessage.objects.latest('pk') self.assertEqual(message.sender, message.healthprofessional) message.healthprofessional = None message.secretary = Secretary.objects.all()[0] self.assertEqual(message.sender, message.secretary) # Check if the same self.assertEqual(message.internal_message, internal_message) self.assertEqual(message.subject, subject) # Check if message is present for Frank self.login('frank@example.com') res = self.get('/') patient = res.context_data['patient'] session_key = self.get_session_key(patient.health_person_id) res = self.get('/messages/patient/' + session_key + '/' + str(message.id) + '/details/') message = res.context['message'] # Check if the same self.assertEqual(message.internal_message, internal_message) self.assertEqual(message.subject, subject)