diff --git a/stetl/filters/xmlassembler.py b/stetl/filters/xmlassembler.py index 38d4be7..1a2c179 100644 --- a/stetl/filters/xmlassembler.py +++ b/stetl/filters/xmlassembler.py @@ -50,7 +50,7 @@ def consume_element(self, packet): # Always move the data (element) from packet element = packet.consume() - if element: + if element is not None: self.total_element_count += 1 self.element_arr.append(element) diff --git a/tests/data/data_xmlassembler.gml b/tests/data/data_xmlassembler.gml new file mode 100644 index 0000000..bf1ab1e --- /dev/null +++ b/tests/data/data_xmlassembler.gml @@ -0,0 +1,271 @@ + + + + + + + + NL.TOP10NL + 101010 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + arboretum + + Test typeFunctioneelGebied arboretum + Test typeFunctioneelGebied arboretum + + + + + 101014.5 400104.5 + + + + + + + + + + + NL.TOP10NL + 101011 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + arboretum + + Test typeFunctioneelGebied arboretum + Test typeFunctioneelGebied arboretum + + + + + + + 101010 400110 101019 400110 101019 400119 101010 400119 101010 400110 + + + + + + + + + + + + + NL.TOP10NL + 101012 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + arboretum + + Test typeFunctioneelGebied arboretum + Test typeFunctioneelGebied arboretum + + + + + + + 101010 400120 101019 400120 101019 400129 101010 400129 101010 400120 + + + + + 101013 400123 101013 400126 101016 400126 101016 400123 101013 400123 + + + + + + + + + + + + + NL.TOP10NL + 101013 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + arboretum + + Test typeFunctioneelGebied arboretum + Test typeFunctioneelGebied arboretum + + + + + + + + + 101010 400130 101019 400130 101019 400134 101010 400134 101010 400130 + + + + + + + + + 101010 400135 101019 400135 101019 400139 101010 400139 101010 400135 + + + + + + + + + + + + + + + NL.TOP10NL + 101020 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + attractiepark + + Test typeFunctioneelGebied attractiepark + Test typeFunctioneelGebied attractiepark + + + + + 101024.5 400104.5 + + + + + + + + + + + NL.TOP10NL + 101021 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + attractiepark + + Test typeFunctioneelGebied attractiepark + Test typeFunctioneelGebied attractiepark + + + + + + + 101020 400110 101029 400110 101029 400119 101020 400119 101020 400110 + + + + + + + + + + + + + NL.TOP10NL + 101022 + + + Luchtfoto + 2015-01-01 + Een orthogerectificeerde fotografische opname van een deel van het aardoppervlak. Gemaakt vanuit een vliegtuig. + 0.4 + 2015-08-15 + 2015-08-15 + 999 + 19160 + TEST + attractiepark + + Test typeFunctioneelGebied attractiepark + Test typeFunctioneelGebied attractiepark + + + + + + + 101020 400120 101029 400120 101029 400129 101020 400129 101020 400120 + + + + + 101023 400123 101023 400126 101026 400126 101026 400123 101023 400123 + + + + + + + + + diff --git a/tests/filters/configs/xmlassembler.cfg b/tests/filters/configs/xmlassembler.cfg index ade3441..641f4d0 100644 --- a/tests/filters/configs/xmlassembler.cfg +++ b/tests/filters/configs/xmlassembler.cfg @@ -16,7 +16,7 @@ element_tags = FeatureMember [parse_xml_file_input] class = inputs.fileinput.XmlElementStreamerFileInput element_tags = FeatureMember -file_path = tests/data/dummy.gml +file_path = tests/data/data_xmlassembler.gml # Assembles etree docs gml:featureMember elements, each with "max_elements" elements [xml_assembler] diff --git a/tests/filters/test_xml_assembler.py b/tests/filters/test_xml_assembler.py index 3bf24a8..440b89f 100755 --- a/tests/filters/test_xml_assembler.py +++ b/tests/filters/test_xml_assembler.py @@ -1,6 +1,4 @@ import os -#import re -import sys from stetl.etl import ETL from stetl.filters.xmlassembler import XmlAssembler @@ -40,11 +38,11 @@ def test_execute(self): # most Packets are empty, but we need to find 2 filled with etree docs doc_packet_list = [] for packet in packet_list: - if packet.data: + if packet.data is not None: doc_packet_list.append(packet) # Assertion: we need to see 2 documents - self.assertEqual(len(doc_packet_list), 2) + self.assertEqual(len(doc_packet_list), 4) namespaces={'gml': 'http://www.opengis.net/gml/3.2', 'top10nl': 'http://register.geostandaarden.nl/gmlapplicatieschema/top10nl/1.2.0'} # Assertion: first doc has two FeatureMember elements with proper Namespaces @@ -52,8 +50,9 @@ def test_execute(self): feature_elms = xml_doc1.xpath('/gml:FeatureCollectionT10NL/top10nl:FeatureMember', namespaces=namespaces) self.assertEqual(len(feature_elms), 2) - # Assertion: second doc has one FeatureMember with proper Namespaces - xml_doc2 = doc_packet_list[1].data + # Assertion: last doc has one FeatureMember with proper Namespaces + last = len(doc_packet_list) - 1 + xml_doc2 = doc_packet_list[last].data feature_elms = xml_doc2.xpath('/gml:FeatureCollectionT10NL/top10nl:FeatureMember', namespaces=namespaces) self.assertEqual(len(feature_elms), 1) @@ -61,6 +60,6 @@ def test_execute(self): self.assertTrue(doc_packet_list[0].end_of_doc, msg='doc1: end_of_doc if False') self.assertFalse(doc_packet_list[0].end_of_stream, msg='doc1: end_of_stream is True') - # Assertion: second doc has end_of_doc and end_of_stream set - self.assertTrue(doc_packet_list[1].end_of_doc, msg='doc2: end_of_doc if False') - self.assertTrue(doc_packet_list[1].end_of_stream, msg='doc2: end_of_stream if False') + # Assertion: last doc has end_of_doc and end_of_stream set + self.assertTrue(doc_packet_list[last].end_of_doc, msg='doc2: end_of_doc if False') + self.assertTrue(doc_packet_list[last].end_of_stream, msg='doc2: end_of_stream if False')