mvantellingen / python-zeep

A Python SOAP client
http://docs.python-zeep.org
Other
1.87k stars 579 forks source link

Zeep does not correctly handle ONVIF WSDL #1348

Open EmpireofKings opened 1 year ago

EmpireofKings commented 1 year ago

Hello all,

I am using zeep 4.2.0, with WSDL v1.1.

I am attempting to implement ONVIF via zeep, but i am seeing many issues in the responses, they are either incomplete, incorrectly parsed or simply fail to work.

Quick and easy examples to reproduce failure cases.

python3.7 -m zeep https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl python3.7 -m zeep https://www.onvif.org/ver10/events/wsdl/event.wsdl python3.7 -m zeep https://www.onvif.org/ver20/media/wsdl/media.wsdl

Traceback (most recent call last): File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/__main__.py", line 92, in <module> main(args) File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/__main__.py", line 87, in main client.wsdl.dump() File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/wsdl/wsdl.py", line 124, in dump value = type_obj.signature(schema=self.types) File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/xsd/types/complex.py", line 506, in signature part = element.signature(schema, standalone=False) File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/xsd/elements/indicators.py", line 269, in signature value = element.signature(schema, standalone=False) File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/xsd/elements/element.py", line 315, in signature value = self.type.signature(schema, standalone=False) File "/usr/local/lib/python3.7/dist-packages/zeep-4.2.0-py3.7.egg/zeep/xsd/types/complex.py", line 513, in signature value = ", ".join(parts) TypeError: sequence item 0: expected str instance, NoneType found

Is there something wrong with ONVIF WSDL ? Am i doing something wrong ? or can zeep only handle very simply WSDL docs ???

In my testing, suds works without issue, so zeep should be able to handle ONVIF aswell.