Source code for ejpiaj.runner

# -*- coding: utf-8 -*-

import logging

from clint.textui import puts, colored

from .core import test_request


[docs]def console_runner(suite, variables=None, debug=False, display_variables=False, quiet=False): logger = logging.getLogger(__name__) failed_counter = 0 if not variables: variables = {} if not quiet: puts(colored.white('-' * 80)) puts(colored.white('P - passed assertions, F - failed assertions' ', V - extracted variables')) puts(colored.white('-' * 80)) tests = suite['requests'] for test_name in sorted(suite['requests'].keys()): test = tests[test_name] result = test_request(test, variables) logger.debug(result) if result['valid']: test_name = u"%s [P%d,F%d,V%d]" % ( test_name, len(result['passed_assertions']), len(result['failed_assertions']), len(result['variables']), ) if not quiet: line = u"✓ " + test_name if display_variables: line += " " + str(result['variables']) puts(colored.green(line)) else: failed_counter += 1 if not quiet: puts(colored.red( u"✗ " + test_name + u" (" + u" ∥ ".join(result['failed_assertions']) + ")" )) if not quiet: puts(colored.white('-' * 80)) return failed_counter