Changeset 4539

Show
Ignore:
Timestamp:
04/21/09 23:17:33 (4 years ago)
Author:
getxsick
Message:

fixed #307 - multiple loading of XML

Location:
branch/UMPA
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branch/UMPA/tests/unit/test_extensions/test_xml.py

    r4536 r4539  
    258258 
    259259    def test_xml_load(self): 
    260         def load(text): 
    261             f = StringIO() 
    262             f.write(text) 
    263             f.seek(0) 
    264  
    265             packets = XML.load(f) 
    266             for p in packets: 
    267                 for i, proto in enumerate(p.protos): 
    268                     for fieldname in proto.get_fields_keys(): 
    269                         assert proto.get_field(fieldname).fillout() == \ 
    270                 self.example_packet.protos[i].get_field(fieldname).fillout() 
    271  
    272         packets = (self.example_xml, self.example_xml2) 
    273         tmp = "" 
     260        f = StringIO() 
     261        f.write(self.example_xml) 
     262        f.seek(0) 
     263 
     264        packets = XML.load(f) 
    274265        for p in packets: 
    275             tmp += p 
    276             yield load, tmp 
    277             tmp = tmp[:-8] # </UMPA>\n 
     266            for i, proto in enumerate(p.protos): 
     267                for fieldname in proto.get_fields_keys(): 
     268                    assert proto.get_field(fieldname).fillout() == \ 
     269            self.example_packet.protos[i].get_field(fieldname).fillout() 
     270 
     271    def test_xml_load_multiple(self): 
     272        l_xml= (self.example_xml, self.example_xml2) 
     273        l_packet = (self.example_packet, self.example_packet2) 
     274        f = StringIO() 
     275        f.write(l_xml[0][:-8]) # </UMPA>\n 
     276        f.write(l_xml[1]) 
     277        f.seek(0) 
     278 
     279        packets = XML.load(f) 
     280        for j, p in enumerate(packets): 
     281            for i, proto in enumerate(p.protos): 
     282                for fieldname in proto.get_fields_keys(): 
     283                    assert proto.get_field(fieldname).fillout() == \ 
     284            l_packet[j].protos[i].get_field(fieldname).fillout() 
    278285 
    279286    def test_xml_load_proto_only(self): 
  • branch/UMPA/umpa/extensions/XML.py

    r4538 r4539  
    129129    # useful if you have type in string and need to cast it 
    130130    typemap = dict(float=float, int=int, str=str, bool=bool) 
    131  
    132131    packets = [] 
    133132    for pa in doc.getElementsByTagName("packet"): 
     
    178177        if proto_only: 
    179178            return packet.protos 
    180     packets.append(packet) 
     179        packets.append(packet) 
    181180    return packets 
    182181