Revision 3e4c5c32

b/snf-tools/synnefo_tools/burnin.py
75 75
    def addSuccess(self, test):
76 76
        super(BurninTestResult, self).addSuccess(test)
77 77
        if self.showAll:
78
            if test.result_dict:
78
            if hasattr(test, 'result_dict'):
79 79
                run_details = test.result_dict
80 80

  
81 81
                self.stream.write("\n")
......
91 91
        super(BurninTestResult, self).addError(test, err)
92 92
        if self.showAll:
93 93
            self.stream.writeln("ERROR")
94
            if hasattr(test, 'result_dict'):
95
                run_details = test.result_dict
94 96

  
95
            run_details = test.result_dict
96

  
97
            self.stream.write("\n")
98
            for i in run_details:
99
                self.stream.write("%s : %s \n" % (i, run_details[i]))
100
            self.stream.write("\n")
97
                self.stream.write("\n")
98
                for i in run_details:
99
                    self.stream.write("%s : %s \n" % (i, run_details[i]))
100
                self.stream.write("\n")
101 101

  
102 102
        elif self.dots:
103 103
            self.stream.write('E')
......
107 107
        super(BurninTestResult, self).addFailure(test, err)
108 108
        if self.showAll:
109 109
            self.stream.writeln("FAIL")
110
            if hasattr(test, 'result_dict'):
111
                run_details = test.result_dict
110 112

  
111
            run_details = test.result_dict
112

  
113
            self.stream.write("\n")
114
            for i in run_details:
115
                self.stream.write("%s : %s \n" % (i, run_details[i]))
116
            self.stream.write("\n")
113
                self.stream.write("\n")
114
                for i in run_details:
115
                    self.stream.write("%s : %s \n" % (i, run_details[i]))
116
                self.stream.write("\n")
117 117

  
118 118
        elif self.dots:
119 119
            self.stream.write('F')
......
1470 1470
            else:
1471 1471
                raise Exception("Cannot handle msg: %s" % msg)
1472 1472

  
1473
def _run_cases_in_series(cases,image_folder):
1474
    """Run instances of TestCase in series"""
1475

  
1476
    for case in cases:
1477

  
1478
        test = case.__name__
1479

  
1480
        log.info(yellow + '* Starting testcase: %s' %test + normal)
1481
        log_file = os.path.join(image_folder, 'details_' +
1482
                                (case.__name__) + "_" +
1483
                                TEST_RUN_ID + '.log')
1484
        fail_file = os.path.join(image_folder, 'failed_' +
1485
                                 (case.__name__) + "_" +
1486
                                 TEST_RUN_ID + '.log')
1487
        error_file = os.path.join(image_folder, 'error_' +
1488
                                  (case.__name__) + "_" +
1489
                                  TEST_RUN_ID + '.log')
1490

  
1491
        f = open(log_file, "w")
1492
        fail = open(fail_file, "w")
1493
        error = open(error_file, "w")
1494

  
1495
        suite = unittest.TestLoader().loadTestsFromTestCase(case)
1496
        runner = unittest.TextTestRunner(f, verbosity=2, failfast=True, resultclass=BurninTestResult)
1497
        result = runner.run(suite)
1498

  
1499
        for res in result.errors:
1500
            log.error("snf-burnin encountered an error in " \
1501
                          "testcase: %s" %test)
1502
            log.error("See log for details")
1503
            error.write(str(res[0]) + '\n')
1504
            error.write(str(res[0].shortDescription()) + '\n')
1505
            error.write('\n')
1506

  
1507
        for res in result.failures:
1508
            log.error("snf-burnin failed in testcase: %s" %test)
1509
            log.error("See log for details")
1510
            fail.write(str(res[0]) + '\n')
1511
            fail.write(str(res[0].shortDescription()) + '\n')
1512
            fail.write('\n')
1513
            if NOFAILFAST == False:
1514
                sys.exit()
1515

  
1516
        if (len(result.failures) == 0) and (len(result.errors) == 0):
1517
                log.debug("Passed testcase: %s" %test)
1518

  
1519
    
1473 1520

  
1474 1521
def _run_cases_in_parallel(cases, fanout, image_folder):
1475 1522
    """Run instances of TestCase in parallel, in a number of distinct processes
......
1933 1980
        image_folder = os.path.join(test_folder, imageid)
1934 1981
        os.mkdir(image_folder)
1935 1982

  
1936
        _run_cases_in_parallel(seq_cases, opts.fanout, image_folder)
1983
        if opts.fanout>1:
1984
            _run_cases_in_parallel(seq_cases, opts.fanout, image_folder)
1985
        else:
1986
            _run_cases_in_series(seq_cases,image_folder)
1937 1987

  
1938 1988
if __name__ == "__main__":
1939 1989
    sys.exit(main())

Also available in: Unified diff