unit testing failure makes no sense

Discussion in 'Python' started by listservs@mac.com, Aug 30, 2006.

  1. Guest

    I have some unit testing code in one of my modules that appears to
    run without an error, but the unit test fails anyhow. Have a look at
    the output below -- the TestResult seems to have no errors and no
    failures, yet I get a system exit.

    ------------------------------------------------------------------------
    ---
    exceptions.SystemExit Traceback (most
    recent call last)

    /Users/chris/<ipython console>

    /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/
    unittest.py in __init__(self=<unittest.TestProgram object at
    0x10ee670>, module='__main__', defaultTest=None, argv=['/usr/local/
    bin/ipython'], testRunner=None, testLoader=<unittest.TestLoader
    object at 0x606290>)
    757 self.progName = os.path.basename(argv[0])
    758 self.parseArgs(argv)
    --> 759 self.runTests()
    self.runTests = <bound method TestProgram.runTests of
    <unittest.TestProgram object at 0x10ee670>>
    760
    761 def usageExit(self, msg=None):

    /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/
    unittest.py in runTests(self=<unittest.TestProgram object at 0x10ee670>)
    795 self.testRunner = TextTestRunner
    (verbosity=self.verbosity)
    796 result = self.testRunner.run(self.test)
    --> 797 sys.exit(not result.wasSuccessful())
    global sys.exit = <built-in function exit>
    result.wasSuccessful = <bound method
    _TextTestResult.wasSuccessful of <unittest._TextTestResult run=3
    errors=0 failures=0>>
    798
    799 main = TestProgram

    SystemExit: False
    Type exit or quit to exit IPython (%Exit or %Quit do so
    unconditionally).

    Any ideas what is going wrong here? Here is my testing code:

    class MCMCTest(unittest.TestCase):

    def testCoalMiningDisasters(self):
    """Run coal mining disasters example sampler"""

    print 'Running coal mining disasters test case ...'

    # Create an instance of the sampler
    self.sampler = DisasterSampler()

    # Specify the nimber of iterations to execute
    iterations = 10000
    thin = 2
    burn = 5000
    chains = 2

    # Run MCMC simulation
    for i in range(chains):

    self.failUnless(self.sampler.sample(iterations,
    burn=burn, thin=thin, plot=True))

    # Run convergence diagnostics
    self.sampler.convergence()

    # Plot autocorrelation
    self.sampler.autocorrelation()

    # Goodness of fit
    x, n = self.sampler.goodness(iterations/10)['overall']
    self.failIf(x/n < 0.05 or x/n > 0.95)


    --
    Christopher Fonnesbeck
    + Atlanta, GA
    + fonnesbeck at mac.com
    + Contact me on AOL IM using email address
    , Aug 30, 2006
    #1
    1. Advertising

  2. Peter Otten Guest

    wrote:

    > I have some unit testing code in one of my modules that appears to
    > run without an error, but the unit test fails anyhow. Have a look at
    > the output below -- the TestResult seems to have no errors and no
    > failures, yet I get a system exit.


    sys.exit(0) is just a normal way to exit a program, and it is implemented as
    'raise SystemExit'. You seem to be running your test from within ipython
    which probably catches SystemExit exceptions to prevent you from losing
    state. Try running your test from the shell and all should be OK.

    Peter
    Peter Otten, Aug 30, 2006
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Debashish Chakravarty

    when GOTO makes sense.

    Debashish Chakravarty, Nov 29, 2003, in forum: C Programming
    Replies:
    45
    Views:
    1,073
    Dan Pop
    Dec 9, 2003
  2. Replies:
    11
    Views:
    637
    Crouchinho
    Sep 26, 2006
  3. Replies:
    3
    Views:
    363
  4. Neroku
    Replies:
    6
    Views:
    10,202
    Chris Uppal
    Feb 8, 2007
  5. Replies:
    5
    Views:
    429
Loading...

Share This Page