|
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.
|