Ganesh Pal <ganesh1...@gmail.com> writes: > I have multiple checks if I don't meet them continuing with the main > program doesn't make sense
That means these are not unit tests (which are isolatable, independent test cases). If the tests are best characterised as a sequence of steps, then the ‘unittest’ model (designed for actual unit tests) will not fit well. You should instead just write a ‘main’ function that calls each test case in turn and exits when one of them fails. import sys from .. import foo_app def test_input_wibble_returns_lorem(frob): """ Should process 'wibble' input and result in state 'lorem'. """ frob.process("wibble") if frob.state != "lorem": raise AssertionError def test_input_warble_returns_ipsum(): """ Should process warble' input and result in state 'ipsum'. """ frob.process("warble") if frob.state != "ipsum": raise AssertionError # … EXIT_STATUS_ERROR = 1 def main(argv): """ Mainline code for this module. """ process_args(argv) test_cases = [ test_input_wibble_returns_lorem, test_input_warble_returns_ipsum, # … ] test_frob = foo_app.Frob() for test_case in test_cases: try: test_case(test_frob) except AssertionError as exc: sys.stderr.write("Test run failed ({exc})".format(exc=exc)) sys.exit(EXIT_STATUS_ERROR) if __name__ == "__main__": exit_status = main(sys.argv) sys.exit(exit_status) -- \ “The greatest tragedy in mankind's entire history may be the | `\ hijacking of morality by religion.” —Arthur C. Clarke, 1991 | _o__) | Ben Finney -- https://mail.python.org/mailman/listinfo/python-list