Open GoogleCodeExporter opened 8 years ago
Thanks for reporting!
Could you attach the WSDL and a small example so I can reproduce and fix this
issue?
Original comment by reingart@gmail.com
on 24 May 2014 at 1:53
I created a pastbin with the code exemple and the Traceback below the code:
http://pastebin.com/Fi3reU9Z
Also, the WSDL is from a commercial third party product, I tried to download it
as a file, it is attached.
Sylvain.
Original comment by sylv...@huguet.me
on 24 May 2014 at 3:00
Attachments:
Thanks!
With the wsdl and the example I could reproduce it, there were two errors:
* workflowInputs was not properly detected as an array
* top level parameter's namespace is not handled correctly if it is not a compound element (list or scalar will fail)
I've made a commit (revision f8d1152c34de), could you test it? specially the
array handling (for example, multiple workflowInputs in your wsdl)
Also, I've added a test (revision 0a71e70ad0b7) but I'm not sure how xml should
be in the request / response, if you can attach a working sample that would be
very helpfull too
Original comment by reingart@gmail.com
on 25 May 2014 at 1:10
At first sight, it goes further/is not blocking with the AttributeError.
But so much as change between the 1.14 and the 1.10 that I will need to modify
a lot of my code to be able to validate that everything works.
A simple exemple: the function "getWorkflowsWithName" used to return a list of
"getWorkflowsWithNameReturn" arrays. Now it returns an array with a single key
"getWorkflowsWithNameReturn" with the value being a list of all the returns.
Before the upgrade, I used to access the return with
response[0]['getWorkflowsWithNameReturn'] now it's
response['getWorkflowsWithNameReturn'][0].
All the logic is reversed, so I need to rework my wrapper class before I can
give a definitive answer.
I'll look into it on Monday.
Thanks,
Sylvain.
Original comment by sylv...@huguet.me
on 25 May 2014 at 7:24
I've reverted the array structure logic so you could use
response[0]['getWorkflowsWithNameReturn'] and there should be no need change
your code in most cases (see revision 0f9a9044c1c7).
That behaviour could be controlled with the soap_server parameter (currenly,
only "jetty" uses the new logic, except some complex structures)
Thanks for testing!
You feedback is very helpful
Original comment by reingart@gmail.com
on 25 May 2014 at 4:53
Hello,
I had some time to revisit the topic this morning.
The logic is indeed revert, but when I try to call anothrr function
(getWorkflowTokenStatus) with a code like this:
vcoWS.getWorkflowTokenStatus(workflowIds="01234abc", username="myuser",
password="mypass")
I get the same error as the last time (AttributeError: 'dict' object has no
attribute 'namespaces') at line 370 in client.py.
Sylvain
Original comment by sylv...@huguet.me
on 27 May 2014 at 8:25
Thanks for testing
I've fixed scalar array support (new style "jetty") in revision b266017b6e3f
It will work for this cases like in workflowTokenIds that is a list of strings:
vcoWS.getWorkflowTokenStatus(workflowTokenIds=["01234abc"], username="myuser",
password="mypass")
(your example says workflowIds, but the correct one is workflowTokenIds)
BTW, the AttributeError should not happen, it is a sympthom of the incorrect
structure (list, scalar or None) parsed as a top level parameter (that's why I
didn't change it and instead I'm looking to fix the causes)
Please test it and let me know if this resolved your issue
Original comment by reingart@gmail.com
on 27 May 2014 at 3:01
[deleted comment]
It is working fine using this last release!
Thanks for the fixes, I can get back to work now, no excuses :)
Sylvain.
Original comment by sylv...@huguet.me
on 28 May 2014 at 9:27
Original issue reported on code.google.com by
sylv...@huguet.me
on 24 May 2014 at 10:11