> assert exc.message == "fault-string-withEmptyNamespace"
E AssertionError: assert None == 'fault-string-withEmptyNamespace'
E + where None = Fault(None).message
This Fault Response is used by an external API and the maintainer of these API told me that this empty namespaces are valid and pointed me to https://www.w3.org/TR/REC-xml-names/#scoping-defaulting and there you can also find this example
The attribute value in a default namespace declaration MAY be empty. This has the same effect, within the scope of the declaration, of there being no default namespace.
<?xml version='1.0'?>
<Beers>
<!-- the default namespace inside tables is that of HTML -->
<table xmlns='http://www.w3.org/1999/xhtml'>
<th><td>Name</td><td>Origin</td><td>Description</td></th>
<tr>
<!-- no default namespace inside table cells -->
<td><brandName xmlns="">Huntsman</brandName></td>
<td><origin xmlns="">Bath, UK</origin></td>
<td>
<details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
<pro>Wonderful hop, light alcohol, good summer beer</pro>
<con>Fragile; excessive variance pub to pub</con>
</details>
</td>
</tr>
</table>
</Beers>
The bug was introduced with the namespace support in SOAP 11 Fault node (https://github.com/mvantellingen/python-zeep/commit/0704fb57e9ca6a571a7ccec067d23fa9d037ae5d). If you add the following lines to the
test_soap11_process_error
test intests/test_wsdl_soap.py
you are able to reproduce the problemThe test output with this newly added test
This Fault Response is used by an external API and the maintainer of these API told me that this empty namespaces are valid and pointed me to https://www.w3.org/TR/REC-xml-names/#scoping-defaulting and there you can also find this example
The attribute value in a default namespace declaration MAY be empty. This has the same effect, within the scope of the declaration, of there being no default namespace.