[Windmill-dev] asserts and waits

Mikeal Rogers mikeal at osafoundation.org
Wed Aug 29 13:50:21 PDT 2007


> So for each element like what you are talking about, we will need  
> to add a registry for the UI to dynamically build. If our main  
> concern is that the UI is going to have 50 asserts and 50 waits I  
> can understand why this is a little silly, especially when we get  
> huge amounts of other functions. ) we would have to add specific  
> code in there to say is it an assert, then split the string to find  
> out which one, or for wait, do the same thing.. I have a feeling  
> there is going to be more sets of things that share a common prefix.

Let me get one thing straight. The windmill controller API is a  
public API that currently only translates in to 3 usages [ the python  
API, the JSON api, and the IDE UI ].

Moving forward that API end up being used by a variety of other  
language and library developments in the community. In order to make  
this easy for people it needs to be simple, clean, and standard  
across all the usages. So fixing the problem by consolidating some of  
the public API functions in the IDE doesn't help us.

Also, this doesn't effect the extensions. The extensions will define  
new assertions as new controller functions, so special casing the IDE  
UI could be built statically instead of dynamic since the only code  
for it will be in the core windmill API.

> We want to have assertText be one function in the API (which for  
> maintainability, we need each of these to be their own function

Why is this more maintainable? The public API, documentation, and  
implementation by other languages sure isn't more maintainable this way.

The proposal is for the _public_ assert to be consolidated. Your  
actual implementation doesn't have to be one big monolithic function,  
you can dispatch to a bunch of other functions called assertText,  
assertBlah, that's up to you. I imagine for code maintainability  
you'll definitely want to do this. But the public API should be  
consolidated and standardized.

asssert(type={identifier object}, value=obj)

We can default value to be "exists", since in more cases you'll just  
want to assert than some identifier exists.

-Mikeal


More information about the Windmill-dev mailing list