""" Check handing of unicode. """ import sys sys.path.insert(1, "..") from SOAPpy import * # Uncomment to see outgoing HTTP headers and SOAP and incoming #Config.debug = 1 #Config.dumpHeadersIn = 1 #Config.dumpSOAPIn = 1 #Config.dumpSOAPOut = 1 # ask for returned SOAP responses to be converted to basic python types Config.simplify_objects = 1 #Config.BuildWithNoType = 1 #Config.BuildWithNoNamespacePrefix = 1 def headers(): '''Return a soap header containing all the needed information.''' hd = Types.headerType() hd.useragent = Types.stringType("foo") return hd server = SOAPProxy("http://localhost:9900/",header=headers()) adgroupid = 197497504 keyword1 = { 'status': 'Moderate', 'adGroupId': 197497504, 'destinationURL': None, 'language': '', 'text': 'does not work', 'negative': bool(0), 'maxCpc': 50000, 'type': 'Keyword', 'id': 1 } keyword2 = { 'status': 'Moderate', 'adGroupId': 197497504, 'destinationURL': None, 'language': '', 'text': 'yes it does not', 'negative': bool(0), 'maxCpc': 50000, 'type': 'Keyword', 'id': 2 } keylist = [keyword1, keyword2] # Check that the data goes through properly retval = server.echo_simple(adgroupid, keylist) kw1 = retval[1][0] kw2 = retval[1][1] assert(retval[0] == adgroupid) for key in kw1.keys(): assert(kw1[key]==keyword1[key]) for key in kw2.keys(): assert(kw2[key]==keyword2[key]) # Check that the header is preserved retval = server.echo_header((adgroupid, keylist)) assert(retval[1].has_key('useragent')) assert(retval[1]['useragent'] == 'foo') server.quit() print "Success!"