def test_message_deleted(self): """ Test an already deleted message is marked as such, and the end time is about now """ a = Kv15Stopmessage(dataownercode='HTM', user=self.user, messagecodedate=datetime(2013, 11, 17), messagecodenumber=30) a.save() a.delete() a.set_status(MessageStatus.DELETED) a = Kv15Stopmessage.objects.get(pk=a.pk) # Get latest from db self.assertEqual(a.status, MessageStatus.DELETED) self.assertEqual(a.isdeleted, True) row = { 'DataOwnerCode': 'HTM', 'TimingPointCode': 400, 'MessageCodeDate': '2013-11-17', 'MessageCodeNumber': '30' } # Method under test self.testClass.process_message(row, True) a = Kv15Stopmessage.objects.get(pk=a.pk) # Get latest from db self.assertEqual(a.status, MessageStatus.DELETE_CONFIRMED) self.assertLess((now() - a.messageendtime), timedelta(seconds=30), "Time wasn't set right") self.assertEqual(len(a.stops.all()), 1) self.assertEqual(a.stops.all()[0].userstopcode, '400')
def test_message_deletion_multiple(self): """ Test a message that was deleted, with multiple stops (one row per stop) """ messagecodenumber = 36 a = Kv15Stopmessage(dataownercode='HTM', user=self.user, messagecodedate=datetime(2013, 11, 17), messagecodenumber=messagecodenumber) a.save() self.assertEqual(a.status, MessageStatus.SAVED) self.assertEqual(a.isdeleted, False) self.assertEqual(len(a.stops.all()), 0) row = { 'DataOwnerCode': 'HTM', 'TimingPointCode': 400, 'MessageCodeDate': '2013-11-17', 'MessageCodeNumber': str(messagecodenumber) } # Method under test self.testClass.process_message(row, True) row['TimingPointCode'] = 401 self.testClass.process_message(row, True) a = Kv15Stopmessage.objects.get(pk=a.pk) # Get latest from db self.assertEqual(a.status, MessageStatus.DELETE_CONFIRMED) self.assertEqual(a.isdeleted, True) self.assertLess((now() - a.messageendtime), timedelta(seconds=30), "Time wasn't set right") self.assertEqual(len(a.stops.all()), 2) self.assertEqual(a.stops.all()[0].userstopcode, '400') self.assertEqual(a.stops.all()[1].userstopcode, '401')
def test_output_complete(self): m1 = Kv15Stopmessage(dataownercode='HTM', user=self.user) m1.messagecodedate = datetime.strptime("2013-11-16", "%Y-%m-%d").date() m1.messagecodenumber = 10 start = make_aware(datetime.strptime("2013-11-16T14:09:35.161617", "%Y-%m-%dT%H:%M:%S.%f"), get_default_timezone()) end = make_aware(datetime.strptime("2013-11-17T03:00:00", "%Y-%m-%dT%H:%M:%S"), get_default_timezone()) m1.messagestarttime = start m1.messageendtime = end m1.messagecontent = "Bla!" m1.messagepriority = MESSAGEPRIORITY[1][0] m1.messagetype = MESSAGETYPE[1][0] m1.messagedurationtype = MESSAGEDURATIONTYPE[1][0] m1.reasontype = REASONTYPE[1][0] m1.subreasontype = SUBREASONTYPE[1][0] m1.reasoncontent = "Uitleg oorzaak" m1.effecttype = EFFECTTYPE[1][0] m1.subeffecttype = SUBEFFECTTYPE[1][0] m1.effectcontent = "Uitleg gevolg" m1.measuretype = MEASURETYPE[1][0] m1.submeasuretype = SUBMEASURETYPE[1][0] m1.measurecontent = "Uitleg aanpassing" m1.advicetype = ADVICETYPE[1][0] m1.subadvicetype = SUBADVICETYPE[1][0] m1.advicecontent = "Uitleg advies" m1.save() Kv15MessageStop(stopmessage=m1, stop=self.haltes[0]).save() self.assertXmlEqual(m1.to_xml(), self.getCompareXML('openebs/tests/output/message_complete.xml'))
def create_message_default(user): msg = Kv15Stopmessage() msg.user = user msg.dataownercode = 'HTM' msg.messagecodedate = now().date().isoformat() msg.messagestarttime = now() msg.messageendtime = now() + timedelta(hours=3) msg.measurecontent = "This is a test message" return msg
def test_output_delete(self): m1 = Kv15Stopmessage(dataownercode='HTM', user=self.user) m1.messagecodedate = datetime.strptime("2013-11-16", "%Y-%m-%d").date() m1.messagecodenumber = 11 start = make_aware(datetime.strptime("2013-11-16T14:09:35.161617", "%Y-%m-%dT%H:%M:%S.%f"), get_default_timezone()) end = make_aware(datetime.strptime("2013-11-17T03:00:00", "%Y-%m-%dT%H:%M:%S"), get_default_timezone()) m1.messagestarttime = start m1.messageendtime = end m1.messagecontent = "Bla!" m1.save() Kv15MessageStop(stopmessage=m1, stop=self.haltes[0]).save() Kv15MessageStop(stopmessage=m1, stop=self.haltes[1]).save() self.assertXmlEqual(m1.to_xml_delete(), self.getCompareXML('openebs/tests/output/delete.xml'))
def test_message_update(self): """ When we update a message, it sends a delete followed by an update - check that works """ a = Kv15Stopmessage(dataownercode='HTM', user=self.user, messagecodedate=now().date(), messagecodenumber=32) a.messagecontent = "Bla!" a.status = MessageStatus.CONFIRMED a.save() initial_messagecode = a.messagecodenumber # Update it! a.messagecontent = "Bla!" a.save() self.assertNotEqual(initial_messagecode, a.messagecodenumber) delete_row = { 'DataOwnerCode': 'HTM', 'TimingPointCode': 400, 'MessageCodeDate': now().date().isoformat(), 'MessageCodeNumber': '32' } add_row = { 'DataOwnerCode': 'HTM', 'TimingPointCode': 401, 'MessageCodeDate': now().date().isoformat(), 'MessageStartTime': now(), 'MessageEndTime': now() + timedelta(hours=2), 'MessageCodeNumber': '32' } # Method under test self.testClass.process_message(delete_row, True) self.testClass.process_message(add_row, False) a = Kv15Stopmessage.objects.get(pk=a.pk) # Get latest from db self.assertEqual(a.status, MessageStatus.CONFIRMED) self.assertEqual(a.isdeleted, False) self.assertLess(add_row['MessageStartTime'] - a.messagestarttime, timedelta(seconds=240)) self.assertLess(add_row['MessageEndTime'] - a.messageendtime, timedelta(seconds=240))
def test_output_update(self): m1 = Kv15Stopmessage(dataownercode='HTM', user=self.user) m1.messagecodedate = datetime.strptime("2013-11-16", "%Y-%m-%d").date() m1.messagecodenumber = 5012 start = make_aware(datetime.strptime("2013-11-16T14:09:35.161617", "%Y-%m-%dT%H:%M:%S.%f"), get_default_timezone()) end = make_aware(datetime.strptime("2013-11-17T03:00:00", "%Y-%m-%dT%H:%M:%S"), get_default_timezone()) m1.messagestarttime = start m1.messageendtime = end m1.messagecontent = "Bla!" m1.save() Kv15MessageStop(stopmessage=m1, stop=self.haltes[0]).save() Kv15MessageStop(stopmessage=m1, stop=self.haltes[1]).save() initial = m1.messagecodenumber m1.messagecontent = "Dit bericht is geupdate!" m1.save() # This gets done by our form/model when we use the normal view, need to fake this here and repeat it Kv15MessageStop(stopmessage=m1, stop=self.haltes[0]).save() xml = "<DOSSIER>%s</DOSSIER>" % (m1.to_xml_delete(initial)+m1.to_xml()) self.assertXmlEqual(xml, self.getCompareXML('openebs/tests/output/update.xml'))
def test_message_verify_basic(self): """ Test whether updating an existing message from KV8 works - the status must be updated """ a = Kv15Stopmessage(dataownercode='HTM', user=self.user, messagecodedate=now().date(), messagecodenumber=24) a.save() stop = Kv15MessageStop(stopmessage=a, stop=Kv1Stop.objects.get(userstopcode=400)) stop.save() self.assertEqual(a.status, MessageStatus.SAVED) self.assertEqual(a.stops.count(), 1) count = Kv15Stopmessage.objects.count() row = { 'DataOwnerCode': 'HTM', 'TimingPointCode': 400, 'MessageCodeDate': now().date().isoformat(), 'MessageStartTime': now(), 'MessageEndTime': now() + timedelta(hours=2), 'MessageCodeNumber': '24' } # Method under test self.testClass.process_message(row, False) a = Kv15Stopmessage.objects.get(pk=a.pk) # Get latest from db self.assertEqual(a.status, MessageStatus.CONFIRMED) self.assertEqual(a.user.username, self.user.username) self.assertEqual(a.stops.count(), 1) # No new messages created - check count self.assertEqual(Kv15Stopmessage.objects.count(), count)