Archaeopteryx Software, Inc.
Take Flight!Search

Home
Wing IDE
News
Support
About Us
Python
Open Source
Store

 Search:
 
 Advanced Search




[wingide-users] unittest: Any experiences of unit testing under WingIDE

Stephan R.A. Deibel sdeibel@archaeopteryx.com
Tue, 25 Sep 2001 10:49:20 -0400 (EDT)


Hi,

On Tue, 25 Sep 2001, F. GEIGER wrote:
> I wanted to play around with unittest. I wanted to do that within WingIDE of
> course but had to see, that the test cases are not executed in this case:
> "Ran 0 tests in 0.000s". If I run the script of question from the console it
> tells me "Ran 1 test in...". So what's the difference? Can I configure
> WingIDE somehow to "cooperate" with unittest?

The problem is that __main__ is not really the same when you run within
the Wing debugger, because the wrapper call wingdb.py is __main__.  We try
to hide this from the debug process but you've uncovered a bug in Wing
1.1b7-2 and earlier where our import hook is not returning the faked
__main__ upon __import__('__main__') (which is what unittest.py is doing).

There are two ways to work around this for now:

1) Write a small substitute main entry point for your test instead of
   using the "if __name__ == '__main__'" clause.  So in a seperate file
   you would have:

   import unittest
   unittest.main('mytestclasses')

   or:

   import unittest
   import mytestclasses
   unittest.main(mytestclasses)

   In this case you are explicitely giving the test modules so you
   don't run into the __main__ problem.

2) Use wingdbstub and launch the process from the command line.
   In this case __main__ is correct because there is no difference
   in what you're launching from the non-debug case.

The __import__('__main__') bug should be fixed in the next release.

Thanks for reporting this!

- Stephan






Run by Mailman v 2.0.8


Copyright (c) 2000-2002, Archaeopteryx Software, Inc.
Legal Statements