On Fri, May 16, 2014 at 03:48:37PM +0200, Bart Wagenaar wrote:
> Hello Dave,
>
> I got your email address from a colleague (Mikki Weesenaar) who has
> submitted another bug before. I probably found another bug :-)
>
> In case a list of items can be added, the generated model has a function
> 'insert_window(self, index, value)' but instead of inserting an 'window'
> into an array, it actually replaces a value.
>
> I have attached a simple XSD with which the fault can be 'created'. And
> also the generated python file (line 725 contains the fault).
>
Bart,
Thanks for pointing this out, and thanks for providing the file that
reproduces it. And, I can't think of any good reason or excuse that
would explain why I did it that way.
I agree that a Python programmer would expect it to do the insert
rather than the replacement.
OK, we could modify generateDS.py so that instead of this:
def insert_window(self, index, value): self.window[index] = value
it generates the following:
def replace_window_at(self, index, value): self.window[index] = value
def insert_window_at(self, index, value): self.window.insert(index, value)
I was worried that there may be some code out there that depends on
the current behavior. So, I've removed the old generated name
completely (insert_window, ...). This change would cause code that
uses the old, exiting "insert_xx" method to throw an exception,
which would alert the user to the need to change his/her code.
And, it should be relatively easy to search existing code that uses
a generated module for "insert_" to determine whether a change is
needed.
I've made the above fix. This fix also makes an equivalent change
for "old style" getter and setter names (command line option
--use-getter-setter). So, for example, with command line option
--use-getter-setter=old, it generates replaceWindowAt and
insertWindowAt.
What do you think?
You can get the patched version at Bitbucket:
https://bitbucket.org/dkuhlman/generateds
If you get a chance to try it, please let me know what you think.
Dave
--
Dave Kuhlman
http://www.davekuhlman.org
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
generateds-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/generateds-users