[Python-bugs-list] [Bug #131480] __test__() should auto-exec at compile time

noreply@sourceforge.net noreply@sourceforge.net
Fri, 09 Feb 2001 15:35:26 -0800


Bug #131480, was updated on 2001-Feb-07 18:44
Here is a current snapshot of the bug.

Project: Python
Category: None
Status: Closed
Resolution: Wont Fix
Bug Group: Feature Request
Priority: 5
Submitted by: justinshaw
Assigned to : jhylton
Summary: __test__() should auto-exec at compile time

Details: We can make unit testing as simple as writing the test code!
Everyone agrees that unit tests are worth while.  Python does a great job
removing tedium from the job of the programmer.  Unit test should run
automatically.  Here's a method everyone can agree to:

Have the compiler check each module for a funtion with the special name
'__test__' that takes no arguments.  If it finds it it calls it.

The problem of unit testing divides esiliy into two pieces: How to create
the code and how to execute the code.  There are many options in creating
the code but I have never seen any nice solutions to run the code
automatically
"if __name__ == '__main__':"
 doesn't count since you have to do somthing special to call the code i.e.
run it as a script.  There are of course ways to run the test code
automatically but the ways I have figured out run it on every import (way
too often especially for long tests).  I imagine there is a way to check to
see if the module is loaded from a .pyc file and execute test code
accouringly but this seems a bit kludgy.  Here are the benifits of compile
time auto-execution:

- Compatible with every testing framework.
- Called always and only when it needs to be executed.
- So simple even micro projects 'scripts' can take advantage

Disadvantages:
- Another special name, '__test__'
- If there are more please tell me!

I looked around the source-code and think I see the location where we can
do this.  It's would be a piece of cake and the advantages far outway the
disadvantages.  If I get some support I'd love to incorporate the fix.

Justin Shaw
thomas.j.shaw@aero.org

Follow-Ups:

Date: 2001-Feb-09 15:35
By: jhylton

Comment:
I don't agree that unit tests should run automatically.  Nor do I think
adding magic to the language to support unit tests is necessary when it is
trivial to add some external mechanism.

-------------------------------------------------------

For detailed info, follow this link:
http://sourceforge.net/bugs/?func=detailbug&bug_id=131480&group_id=5470