[Python-modules-team] Bug#623433: python-zsi: Faulty detection of nillable elements

Fladischer Michael FladischerMichael at fladi.at
Wed Apr 20 07:25:12 UTC 2011


Package: python-zsi
Version: 2.1~a1-3
Severity: normal
Tags: upstream patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

ZSI fails at doing a proper attribute check for nillable elements. It
doen not take into account the XML namespace prefix "xsi" for the "nil"
attribute. It has been reported upstream but there has been no reaction
for more then 3 month.

This is rather nasty as it prevents ZSI from being able to query most of
the information from the Debian BTS SOAP interface:

    >>> from ZSI.client import Binding
    >>> b = Binding('http://bugs.debian.org/cgi-bin/soap.cgi')
    >>> b.get_status(123456)
    ZSI.EvaluateException: Non-nillable element is NIL
    [Element trace:
    /soap:Envelope/soap:Body/get_statusResponse/s-gensym3/item/value/fixed/item/value]

The upstream bugreport at [0] contains a patch written by me to fix this
problem. I've modified this patch a bit and it would be great if it could 
be included in the python-zsi package.

[0] http://sourceforge.net/tracker/index.php?func=detail&aid=3155574&group_id=26590&atid=387667

- -- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-zsi depends on:
ii  python                        2.6.6-14   interactive high-level object-orie
ii  python-support                1.0.13     automated rebuilding support for P

python-zsi recommends no packages.

python-zsi suggests no packages.

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk2uilYACgkQeJ3z1zFMUGZlWQCghZPkj4uTId0zpSODd/E6BgWg
/8YAnAgl7WLDxmE2BA+d1C+ksYdui4fD
=eeKx
-----END PGP SIGNATURE-----
-------------- next part --------------
--- /usr/lib/pymodules/python2.6/ZSI/TC.py	2011-01-11 14:49:24.653560293 +0100
+++ TC.py	2011-01-11 14:49:50.619867506 +0100
@@ -29,7 +29,7 @@
 
 _is_xsd_or_soap_ns = lambda ns: ns in [
                         SCHEMA.XSD3, SOAP.ENC, SCHEMA.XSD1, SCHEMA.XSD2, ]
-_find_nil = lambda E: _find_xsi_attr(E, "null") or _find_xsi_attr(E, "nil")
+_find_nil = lambda E: _find_xsi_attr(E, "null") or _find_xsi_attr(E, "xsi:nil") or _find_xsi_attr(E, "nil")
 
 def _get_xsitype(pyclass):
     '''returns the xsi:type as a tuple, coupled with ZSI.schema


More information about the Python-modules-team mailing list