Exemple #1
0
    def test_generate_creeerZaak_Lk01(self):
        current_tz = timezone.get_current_timezone()
        location = Point(4.1234, 52.1234)
        signal = SignalFactory.create(incident_date_end=None,
                                      location__geometrie=location)

        seq_no = _generate_sequence_number(signal)
        xml_message = _generate_creeerZaak_Lk01(signal, seq_no)

        self.assertXmlDocument(xml_message)
        self.assertIn(
            f'<StUF:referentienummer>{signal.sia_id}.{seq_no}</StUF:referentienummer>',
            xml_message)
        self.assertIn(
            '<StUF:tijdstipBericht>{}</StUF:tijdstipBericht>'.format(
                signal.created_at.astimezone(current_tz).strftime(
                    '%Y%m%d%H%M%S')), xml_message)
        self.assertIn(
            '<ZKN:startdatum>{}</ZKN:startdatum>'.format(
                signal.incident_date_start.astimezone(current_tz).strftime(
                    '%Y%m%d')), xml_message)
        incident_date_end = signal.created_at + timedelta(days=3)
        self.assertIn(
            '<ZKN:einddatumGepland>{}</ZKN:einddatumGepland>'.format(
                incident_date_end.astimezone(current_tz).strftime('%Y%m%d')),
            xml_message)
        self.assertIn(
            '<StUF:extraElement naam="Ycoordinaat">{}</StUF:extraElement>'.
            format(location.y), xml_message)
        self.assertIn(
            '<StUF:extraElement naam="Xcoordinaat">{}</StUF:extraElement>'.
            format(location.x), xml_message)
    def test_no_address_means_no_address_fields(self):
        self.signal.location.address = None
        self.signal.save()

        msg = _generate_creeerZaak_Lk01(self.signal, self.seq_no)
        root = self.assertXmlDocument(msg)

        namespaces = {'zaak': 'http://www.egem.nl/StUF/sector/zkn/0310'}
        found = root.xpath('//zaak:object//zaak:heeftBetrekkingOp', namespaces=namespaces)
        self.assertEqual(found, [])
Exemple #3
0
    def test_generate_creeerZaak_Lk01_priority_low(self):
        current_tz = timezone.get_current_timezone()
        signal = SignalFactory.create(incident_date_end=None,
                                      priority__priority=Priority.PRIORITY_LOW)

        seq_no = _generate_sequence_number(signal)
        xml_message = _generate_creeerZaak_Lk01(signal, seq_no)

        self.assertXmlDocument(xml_message)
        incident_date_end = signal.created_at + timedelta(days=3)
        self.assertIn(
            '<ZKN:einddatumGepland>{}</ZKN:einddatumGepland>'.format(
                incident_date_end.astimezone(current_tz).strftime('%Y%m%d')),
            xml_message)
Exemple #4
0
    def test_propagate_signal_properties_to_message_full_address(self):
        msg = _generate_creeerZaak_Lk01(self.signal, self.seq_no)
        current_tz = timezone.get_current_timezone()

        # first test that we have obtained valid XML
        root = etree.fromstring(msg)
        self.assertXmlDocument(msg)

        # Check whether our properties made it over
        # (crudely, maybe use XPATH here)
        need_to_find = dict([
            ('{http://www.egem.nl/StUF/StUF0301}referentienummer',
             f'{self.signal.sia_id}.{self.seq_no}'),
            ('{http://www.egem.nl/StUF/sector/zkn/0310}identificatie',
             f'{self.signal.sia_id}.{self.seq_no}'),
            ('{http://www.egem.nl/StUF/sector/bg/0310}gor.openbareRuimteNaam',
             self.signal.location.address['openbare_ruimte']),
            ('{http://www.egem.nl/StUF/sector/bg/0310}huisnummer',
             self.signal.location.address['huisnummer']),
            ('{http://www.egem.nl/StUF/sector/bg/0310}postcode',
             self.signal.location.address['postcode']),
            ('{http://www.egem.nl/StUF/StUF0301}tijdstipBericht',
             self.signal.created_at.astimezone(current_tz).strftime(
                 '%Y%m%d%H%M%S')),
            ('{http://www.egem.nl/StUF/sector/zkn/0310}registratiedatum',
             self.signal.created_at.astimezone(current_tz).strftime('%Y%m%d')),
            ('{http://www.egem.nl/StUF/sector/zkn/0310}startdatum',
             self.signal.incident_date_start.astimezone(current_tz).strftime(
                 '%Y%m%d')),
            ('{http://www.egem.nl/StUF/sector/zkn/0310}einddatumGepland',
             self.signal.incident_date_end.astimezone(current_tz).strftime(
                 '%Y%m%d'))
        ])
        # X and Y need to be checked differently
        for element in root.iter():
            # logger.debug('Found: {}'.format(element.tag))
            if element.tag in need_to_find:
                correct = str(need_to_find[element.tag]) == element.text
                if correct:
                    del need_to_find[element.tag]
                else:
                    logger.debug('Found {} and is correct {}'.format(
                        element.tag, correct))
                    logger.debug('element.text {}'.format(element.text))

        self.assertEqual(len(need_to_find), 0)
Exemple #5
0
 def test_escaping(self):
     poison: Signal = self.signal
     poison.text = '<poison>tastes nice</poison>'
     msg = _generate_creeerZaak_Lk01(poison, self.seq_no)
     self.assertTrue('<poison>' not in msg)
Exemple #6
0
 def test_is_xml(self):
     msg = _generate_creeerZaak_Lk01(self.signal, self.seq_no)
     self.assertXmlDocument(msg)