[EMAIL PROTECTED] wrote:
Hey there,

I have a simple question about python print statement. Take the
following code snippet for example...

1 print "-#- executing: %s" % section,
2 tests[section] = test.testcase(name=config.get(section,'name'))
3 tests[section].runTest()
4 printStatus(tests[section])

Now the problem is that line 1 does not get printed until line 4. What
I thought would happen is that line 1 gets executed and the user sees
that the statement that the test case is executing. Then after the
test case executes a "PASS" or "FAIL" appears on the same line as the
"-#- executing: 0053" statement.

e.g.
-#- executing: 0053     FAIL

Some tests take a long time to finish thus the screen is blank until
the entire test finishes and the above statement is outputted.

Thanks for any help.

'print' sends its output to sys.stdout, which is buffered, and may not be displayed immediately (because it's held in the buffer). To force the output to be displayed, use flush():

  print "-#- executing: %s" % section,
  sys.stdout.flush()
  ...tests here...

Hope this helps!

--Hans
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to