[Windmill-dev] Python test suites

Matthew Eernisse mde at osafoundation.org
Tue Dec 18 16:05:49 PST 2007


Mikeal,

Thanks for the response. I definitely appreciate your point of view. A 
few counterpoints/comments below:

Mikeal Rogers wrote:
> I think some history brings this in to context.

The prospective users that I'm talking about won't have any interest in 
Windmill history. All they know or care about is what they see when they 
come to the site.

> If you look at some of the setup/teardown in 
> our cosmo test repository you'll see how a large string of JSON format 
> can be transformed into a python calling using some windmill internals

I think there will be a non-trivial number of prospective users who also 
have no interest at all in the Windmill internals. :)

> Creating __init__.py is "really doing something", it's making it a valid 
> python module.

 From the point of view of a non-Python-programmer, that is a logical 
equivalent to nothing. :)

> It is NOT a barrier to entry to create an empty file. Especially when 
> this decreases the amount of ways tests are run in windmill.

Any extra step is a barrier.

The smaller API footprint is good, but I don't think that falling back 
to the simplest use case implies a change to the API. You could easily 
make the single method call handle both cases.

The extra work would be handling both cases on the back end, documenting 
it, and keeping it current. I'm not discounting the extra work.

> These imaginary users who have a handful of tests in a directory without 
> dependencies and very little programming experience just haven't 
> surfaced. If they do and they give us this feedback we can consider 
> changing it.

I'm glad you're willing to consider this if we get feedback that it 
would be good.

Note that we will receive exactly zero feedback from people who come to 
the site and then just walk away because the perception is that they 
have to use Python -- which is what "making your test directories a 
valid Python module" implies.

> Because the trade off is supporting another way tests are loaded in to 
> windmill, another command line option, another shell option.

See above. Why can't the same method call support both?

> Supporting this stuff adds complexity, it adds things for users to trip 
> over because they will quickly need to overstep this case for a more 
> complex one, which means they then need to use another option, creating 
> new files, maybe even change directory names.

Agreed. In this case, I'd vote that making it trivial for people to drop 
some JSON files into a directory and run their tests with zero effort is 
more of a priority.

I wouldn't mind a little more complexity down the road if the initial 
bump is zero. By then, they will already have a bunch of tests written, 
and will like what they see in Windmill. They will also have a visceral 
understanding of *why* they need this increased functionality.

> It's not ideological purity, it's actually what i believe is best for 
> our users based on their feedback and experience. I don't think it's a 
> barrier to adoption, I don't think anyone is every going to say "i was 
> using windmill but once I had to create that empty __init__.py file I 
> just gave up!".

See above. I'm not talking about existing users. I'm talking about 
prospective users.

I have a strong feeling there will be people who see their tests have to 
include .py files, and will say, "Ah, I don't want to learn Python, I 
already use X" and will walk away without giving us any of that feedback.

That is not something we should dismiss by saying, "Ah, we don't need 
those users anyway." We need all the users we can get -- and removing 
any excuse *not* to use the app should be a really high priority.

> And again, the initial work may be trivial, but the work to support it 
> is actually a lot

Granted, it does require support. I'm just putting the premium on 
dragging people into Windmill's gravitational pull. And I think you 
might be surprised at how low maintenance just supporting fallback would be.

Thanks for listening. :)


Matthew






More information about the Windmill-dev mailing list