示例#1
0
    def run(self, test):
        "Run the given test case or test suite."
        result = self._makeResult()
        registerResult(result)
        result.failfast = self.failfast
        result.buffer = self.buffer
        startTime = time.time()
        startTestRun = getattr(result, 'startTestRun', None)
        if startTestRun is not None:
            startTestRun()
        try:
            test(result)
        finally:
            stopTestRun = getattr(result, 'stopTestRun', None)
            if stopTestRun is not None:
                stopTestRun()
        stopTime = time.time()
        timeTaken = stopTime - startTime
        result.printErrors()
        if hasattr(result, 'separator2'):
            self.stream.writeln(result.separator2)
        run = result.testsRun
        self.stream.writeln("Ran %d test%s in %.3fs" %
                            (run, run != 1 and "s" or "", timeTaken))
        self.stream.writeln()

        expectedFails = unexpectedSuccesses = skipped = 0
        try:
            results = map(len, (result.expectedFailures,
                                result.unexpectedSuccesses,
                                result.skipped))
        except AttributeError:
            pass
        else:
            expectedFails, unexpectedSuccesses, skipped = results

        infos = []
        if not result.wasSuccessful():
            self.stream.write("FAILED")
            failed, errored = map(len, (result.failures, result.errors))
            if failed:
                infos.append("failures=%d" % failed)
            if errored:
                infos.append("errors=%d" % errored)
        else:
            self.stream.write("OK")
        if skipped:
            infos.append("skipped=%d" % skipped)
        if expectedFails:
            infos.append("expected failures=%d" % expectedFails)
        if unexpectedSuccesses:
            infos.append("unexpected successes=%d" % unexpectedSuccesses)
        if infos:
            self.stream.writeln(" (%s)" % (", ".join(infos),))
        else:
            self.stream.write("\n")
        return result
示例#2
0
 def run(self, test):
     "Run the given test case or test suite."
     result = self._makeResult()
     startTime = time.time()
     startTestRun = getattr(result, 'startTestRun', None)
     if startTestRun is not None:
         startTestRun()
     try:
         test(result)
     finally:
         stopTestRun = getattr(result, 'stopTestRun', None)
         if stopTestRun is not None:
             stopTestRun()
     stopTime = time.time()
     timeTaken = stopTime - startTime
     result.printErrors()
     self.stream.writeln(result.separator2)
     run = result.testsRun
     self.stream.writeln("Ran %d test%s in %.3fs" %
                         (run, run != 1 and "s" or "", timeTaken))
     self.stream.writeln()
     results = map(len, (result.expectedFailures,
                         result.unexpectedSuccesses, result.skipped))
     expectedFails, unexpectedSuccesses, skipped = results
     infos = []
     if not result.wasSuccessful():
         self.stream.write("FAILED")
         failed, errored = map(len, (result.failures, result.errors))
         if failed:
             infos.append("failures=%d" % failed)
         if errored:
             infos.append("errors=%d" % errored)
     else:
         self.stream.write("OK")
     if skipped:
         infos.append("skipped=%d" % skipped)
     if expectedFails:
         infos.append("expected failures=%d" % expectedFails)
     if unexpectedSuccesses:
         infos.append("unexpected successes=%d" % unexpectedSuccesses)
     if infos:
         self.stream.writeln(" (%s)" % (", ".join(infos), ))
     else:
         self.stream.write("\n")
     return result
示例#3
0
    def run(self, test):
        """Run the given test case or test suite."""

        self.resultclass.number_of_tests = test.countTestCases()

        if self.verbosity >= 2:
            self.stream.writeln(colored('\nTesting:\n', attrs=['bold']))
        else:
            self.stream.writeln('Testing...')

        self._check_suites(test)

        result = self._makeResult()
        registerResult(result)
        result.failfast = self.failfast
        result.buffer = self.buffer

        with warnings.catch_warnings():
            if self.warnings:
                # if self.warnings is set, use it to filter all the warnings
                warnings.simplefilter(self.warnings)
                # if the filter is 'default' or 'always', special-case the
                # warnings from the deprecated unittest methods to show them
                # no more than once per module, because they can be fairly
                # noisy.  The -Wd and -Wa flags can be used to bypass this
                # only when self.warnings is None.
                if self.warnings in ['default', 'always']:
                    warnings.filterwarnings(
                        'module',
                        category=DeprecationWarning,
                        message='Please use assert\w+ instead.')

            startTime = time.time()
            startTestRun = getattr(result, 'startTestRun', None)
            if startTestRun is not None:
                startTestRun()
            try:
                test(result)
            finally:
                stopTestRun = getattr(result, 'stopTestRun', None)
                if stopTestRun is not None:
                    stopTestRun()
            stopTime = time.time()

        timeTaken = stopTime - startTime
        result.printErrors()

        run = result.testsRun

        details = {
            'success': result.wasSuccessful(),
            'failures': len(result.failures) + len(result.unexpectedSuccesses),
            'errors': len(result.errors),
            'skipped': len(result.skipped),
            'time': round(timeTaken, 3),
            'sum': run,

        }
        details['successes'] = run - (details['failures'] + details['errors'])
        result.printSummary(details)

        return result
示例#4
0
    def run(self, test):
        """Run the given test case or test suite."""

        self.resultclass.number_of_tests = test.countTestCases()

        if self.verbosity >= 2:
            self.stream.writeln(colored('\nTesting:\n', attrs=['bold']))
        else:
            self.stream.writeln('Testing...')

        self._check_suites(test)

        result = self._makeResult()
        registerResult(result)
        result.failfast = self.failfast
        result.buffer = self.buffer

        with warnings.catch_warnings():
            if self.warnings:
                # if self.warnings is set, use it to filter all the warnings
                warnings.simplefilter(self.warnings)
                # if the filter is 'default' or 'always', special-case the
                # warnings from the deprecated unittest methods to show them
                # no more than once per module, because they can be fairly
                # noisy.  The -Wd and -Wa flags can be used to bypass this
                # only when self.warnings is None.
                if self.warnings in ['default', 'always']:
                    warnings.filterwarnings(
                        'module',
                        category=DeprecationWarning,
                        message='Please use assert\w+ instead.')

            startTime = time.time()
            startTestRun = getattr(result, 'startTestRun', None)
            if startTestRun is not None:
                startTestRun()
            try:
                test(result)
            finally:
                stopTestRun = getattr(result, 'stopTestRun', None)
                if stopTestRun is not None:
                    stopTestRun()
            stopTime = time.time()

        timeTaken = stopTime - startTime
        result.printErrors()

        run = result.testsRun

        details = {
            'success': result.wasSuccessful(),
            'failures': len(result.failures) + len(result.unexpectedSuccesses),
            'errors': len(result.errors),
            'skipped': len(result.skipped),
            'time': round(timeTaken, 3),
            'sum': run,
        }
        details['successes'] = run - (details['failures'] + details['errors'])
        result.printSummary(details)

        return result
示例#5
0
    def run(self, test):
        "Run the given test case or test suite."
        result = self._makeResult()
        registerResult(result)
        result.failfast = self.failfast
        result.buffer = self.buffer
        result.tb_locals = self.tb_locals
        with warnings.catch_warnings():
            if self.warnings:
                # if self.warnings is set, use it to filter all the warnings
                warnings.simplefilter(self.warnings)
                # if the filter is 'default' or 'always', special-case the
                # warnings from the deprecated unittest methods to show them
                # no more than once per module, because they can be fairly
                # noisy.  The -Wd and -Wa flags can be used to bypass this
                # only when self.warnings is None.
                if self.warnings in ['default', 'always']:
                    warnings.filterwarnings(
                        'module',
                        category=DeprecationWarning,
                        message='Please use assert\w+ instead.')
            startTime = time.time()
            startTestRun = getattr(result, 'startTestRun', None)
            if startTestRun is not None:
                startTestRun()
            try:
                test(result)
            finally:
                stopTestRun = getattr(result, 'stopTestRun', None)
                if stopTestRun is not None:
                    stopTestRun()
            stopTime = time.time()
        timeTaken = stopTime - startTime
        result.printErrors()
        # if hasattr(result, 'separator2'):
        # 	self.stream.writeln(result.separator2)
        run = result.testsRun
        # self.stream.writeln("Ran %d test%s in %.3fs" %
        # 					(run, run != 1 and "s" or "", timeTaken))
        # self.stream.writeln()

        expectedFails = unexpectedSuccesses = skipped = 0
        try:
            results = map(len, (result.expectedFailures,
                                result.unexpectedSuccesses, result.skipped))
        except AttributeError:
            pass
        else:
            expectedFails, unexpectedSuccesses, skipped = results

        # infos = []
        # if not result.wasSuccessful():
        # 	self.stream.write("FAILED")
        # 	failed, errored = len(result.failures), len(result.errors)
        # 	if failed:
        # 		infos.append("failures=%d" % failed)
        # 	if errored:
        # 		infos.append("errors=%d" % errored)
        # else:
        # 	self.stream.write("OK")
        # if skipped:
        # 	infos.append("skipped=%d" % skipped)
        # if expectedFails:
        # 	infos.append("expected failures=%d" % expectedFails)
        # if unexpectedSuccesses:
        # 	infos.append("unexpected successes=%d" % unexpectedSuccesses)
        # if infos:
        # 	self.stream.writeln(" (%s)" % (", ".join(infos),))
        # else:
        # 	self.stream.write("\n")
        return result
    def run(self, test):
        "Run the given test case or test suite."
        result = self._makeResult()
        result.failfast = self.failfast
        result.buffer = self.buffer

        startTime = time.time()
        startTestRun = getattr(result, 'startTestRun', None)
        if startTestRun is not None:
            startTestRun()
        try:
            test(result)
        finally:
            stopTestRun = getattr(result, 'stopTestRun', None)
            if stopTestRun is not None:
                stopTestRun()
            else:
                result.printErrors()
        stopTime = time.time()
        timeTaken = stopTime - startTime
        if hasattr(result, 'separator2'):
            self.stream.writeln(result.separator2)
        run = result.testsRun
        self.stream.writeln("Ran %d test%s in %.3fs" %
                            (run, run != 1 and "s" or "", timeTaken))
        self.stream.writeln()

        expectedFails = unexpectedSuccesses = skipped = 0
        try:
            results = list(
                map(len, (result.expectedFailures, result.unexpectedSuccesses,
                          result.skipped)))
            expectedFails, unexpectedSuccesses, skipped = results
        except AttributeError:
            pass
        infos = []
        if not result.wasSuccessful():
            self.stream.write(SET_FAIL_OUTPUT + " FAILED " + RESET_OUTPUT)
            failed, errored = list(map(len, (result.failures, result.errors)))
            if failed:
                infos.append("%sfailures=%d%s" %
                             (SET_FAILURE_TEXT, failed, RESET_OUTPUT))
            if errored:
                infos.append("%serrors=%d%s" %
                             (SET_ERROR_TEXT, errored, RESET_OUTPUT))
        else:
            self.stream.write(SET_OK_OUTPUT + " OK " + RESET_OUTPUT)
        if skipped:
            infos.append("skipped=%d" % skipped)
        if expectedFails:
            infos.append("expected failures=%d" % expectedFails)
        if unexpectedSuccesses:
            infos.append("unexpected successes=%d" % unexpectedSuccesses)
        if infos:
            self.stream.writeln(" (%s)" % (", ".join(infos), ))
        else:
            self.stream.write("\n")

        if result.slow_tests:
            self.stream.writeln("Slow tests: ")
        for test in result.slow_tests:
            self.stream.writeln("{0} : {1}".format(
                test['name'], result.format_time(test['elapsed'])))

        result.closeLogFiles()
        return result
示例#7
0
    def run(self, test):
        "Run the given test case or test suite."

        # convert test classes to Tango Test Suite compliant
        def convertToTango(test):
            try:
                iter(test)
            except TypeError:
                test.__class__.__bases__ = (TangoTestCase, )
            else:
                test.__class__ = TangoTestSuite
                for t in test:
                    convertToTango(t)

        convertToTango(test)

        result = self._makeResult()
        registerResult(result)
        result.failfast = self.failfast
        result.buffer = self.buffer
        startTime = time.time()
        startTestRun = getattr(result, 'startTestRun', None)
        if startTestRun is not None:
            startTestRun()
        try:
            test(result)
        finally:
            stopTestRun = getattr(result, 'stopTestRun', None)
            if stopTestRun is not None:
                stopTestRun()
        stopTime = time.time()
        timeTaken = stopTime - startTime
        result.printErrors()
        if hasattr(result, 'separator2'):
            self.stream.writeln(result.separator2)
        run = result.testsRun
        self.stream.writeln("Ran %d test%s in %.3fs" %
                            (run, run != 1 and "s" or "", timeTaken))
        self.stream.writeln()

        expectedFails = unexpectedSuccesses = skipped = 0
        try:
            results = map(len, (result.expectedFailures,
                                result.unexpectedSuccesses, result.skipped))
        except AttributeError:
            pass
        else:
            expectedFails, unexpectedSuccesses, skipped = results

        infos = []
        if not result.wasSuccessful():
            self.stream.write("FAILED")
            failed, errored = map(len, (result.failures, result.errors))
            if failed:
                infos.append("failures=%d" % failed)
            if errored:
                infos.append("errors=%d" % errored)
        else:
            self.stream.write("OK")
        if skipped:
            infos.append("skipped=%d" % skipped)
        if expectedFails:
            infos.append("expected failures=%d" % expectedFails)
        if unexpectedSuccesses:
            infos.append("unexpected successes=%d" % unexpectedSuccesses)
        if infos:
            self.stream.writeln(" (%s)" % (", ".join(infos), ))
        else:
            self.stream.write("\n")
        return result
    def run(self, test):
        "Run the given test case or test suite."
        result = self._makeResult()
        result.failfast = self.failfast
        result.buffer = self.buffer

        startTime = time.time()
        startTestRun = getattr(result, 'startTestRun', None)
        if startTestRun is not None:
            startTestRun()
        try:
            test(result)
        finally:
            stopTestRun = getattr(result, 'stopTestRun', None)
            if stopTestRun is not None:
                stopTestRun()
            else:
                result.printErrors()
        stopTime = time.time()
        timeTaken = stopTime - startTime
        if hasattr(result, 'separator2'):
            self.stream.writeln(result.separator2)
        run = result.testsRun
        self.stream.writeln("Ran %d test%s in %.3fs" %
                            (run, run != 1 and "s" or "", timeTaken))
        self.stream.writeln()

        expectedFails = unexpectedSuccesses = skipped = 0
        try:
            results = list(
                map(
                    len, (
                        result.expectedFailures,
                        result.unexpectedSuccesses,
                        result.skipped
                    )
                )
            )
            expectedFails, unexpectedSuccesses, skipped = results
        except AttributeError:
            pass
        infos = []
        if not result.wasSuccessful():
            self.stream.write(SET_FAIL_OUTPUT + " FAILED " + RESET_OUTPUT)
            failed, errored = list(map(len, (result.failures, result.errors)))
            if failed:
                infos.append("%sfailures=%d%s" % (SET_FAILURE_TEXT, failed, RESET_OUTPUT))
            if errored:
                infos.append("%serrors=%d%s" % (SET_ERROR_TEXT, errored, RESET_OUTPUT))
        else:
            self.stream.write(SET_OK_OUTPUT + " OK " + RESET_OUTPUT)
        if skipped:
            infos.append("skipped=%d" % skipped)
        if expectedFails:
            infos.append("expected failures=%d" % expectedFails)
        if unexpectedSuccesses:
            infos.append("unexpected successes=%d" % unexpectedSuccesses)
        if infos:
            self.stream.writeln(" (%s)" % (", ".join(infos),))
        else:
            self.stream.write("\n")

        if result.slow_tests:
            self.stream.writeln("Slow tests: ")
        for test in result.slow_tests:
            self.stream.writeln(
                "{0} : {1}".format(test['name'], result.format_time(test['elapsed']))
            )

        result.closeLogFiles()
        return result