~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/apps/tutorialservice/test/TestFramework.py

  • Committer: stevenbird
  • Date: 2008-02-19 22:41:45 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:514
More flexible control of test_case_parts via optional flag
stop_on_fail.  This flag can be used at the outer and inner
levels.  In the previous configuration, testing stopped
after the first test case failed, but within a given test
case, all test_case_parts were run.  Staff requested the
converse behaviour in which all test cases were run, but
within a given test case, only test_case_parts up to the first
failing test_case_part were run.  This permitted early
test_case_parts to serve as guards for later ones, simplifying
the logic required for test code (i.e. avoiding the need to
conjoin the complement of the antecedents of previous
test_case_parts to the current test_case_part).  So, the default
configuration is:

test_case: stop_on_fail=False
test_case_part: stop_on_fail=True

Show diffs side-by-side

added added

removed removed

Lines of Context:
374
374
        """ Get the name of the test case """
375
375
        return self._name
376
376
 
377
 
    def run(self, solution, attempt_code):
 
377
    def run(self, solution, attempt_code, stop_on_fail=True):
378
378
        """ Run the solution and the attempt with the inputs specified for this test case.
379
379
        Then pass the outputs to each test part and collate the results.
380
380
        """
430
430
                
431
431
            results.append(result_dict)
432
432
 
 
433
            # Do we continue the test_parts after one of them has failed?
 
434
            if not passed and stop_on_fail:
 
435
                break;
 
436
 
433
437
        case_dict['parts'] = results
434
438
        case_dict['passed'] = passed
435
439