From: <bov...@us...> - 2006-10-18 22:55:40
|
Revision: 1269 http://svn.sourceforge.net/pywebsvcs/?rev=1269&view=rev Author: boverhof Date: 2006-10-18 15:55:32 -0700 (Wed, 18 Oct 2006) Log Message: ----------- M test/test_t8.py M ZSI/TC.py fix for [ 1521700 ] Empty lists become None using TC.Any Modified Paths: -------------- trunk/zsi/ZSI/TC.py trunk/zsi/test/test_t8.py Modified: trunk/zsi/ZSI/TC.py =================================================================== --- trunk/zsi/ZSI/TC.py 2006-10-17 22:53:19 UTC (rev 1268) +++ trunk/zsi/ZSI/TC.py 2006-10-18 22:55:32 UTC (rev 1269) @@ -708,6 +708,9 @@ if _is_xsd_or_soap_ns(ns): parser = Any.parsemap.get((None,type)) if parser: return parser.parse(elt, ps) + if ((ns,type) == (SOAP.ENC,'Array') or + (_find_arraytype(elt) or '').endswith('[0]')): + return [] return None raise EvaluateException('Required Any missing', ps.Backtrace(elt)) Modified: trunk/zsi/test/test_t8.py =================================================================== --- trunk/zsi/test/test_t8.py 2006-10-17 22:53:19 UTC (rev 1268) +++ trunk/zsi/test/test_t8.py 2006-10-18 22:55:32 UTC (rev 1269) @@ -12,6 +12,23 @@ class AnyTestCase(unittest.TestCase): "Test Any serialize and parse" + def check_empty_array(self): + """Empty Array returned as list() + """ + data = [] + s = str(SoapWriter().serialize(data,TC.Any(aslist=True))) + p = ParsedSoap(s).Parse(TC.Any()) + self.failUnless(data==p, 'expecting "%s", got "%s"' %(data,p)) + + def check_empty_struct(self): + """Empty Struct is None, maybe dict() makes more sense, but this + is fairly hard to determine if not typed (which is the norm). + """ + data = {} + s = str(SoapWriter().serialize(data,TC.Any())) + p = ParsedSoap(s).Parse(TC.Any()) + self.failUnless(p==None, 'expecting "%s", got "%s"' %(None,p)) + def check_parse_empty_all(self): # None skip = [TC.FPEnumeration, TC.Enumeration, TC.IEnumeration, TC.List, TC.Integer] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |