예제 #1
0
    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')
예제 #2
0
    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')
예제 #3
0
    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'))
예제 #4
0
 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
예제 #5
0
    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'))
예제 #6
0
    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))
예제 #7
0
    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'))
예제 #8
0
    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)