예제 #1
0
파일: shell.py 프로젝트: gregoil/rotest
def create_result():
    """Initialize the global result object for running tests in the shell."""
    print("Creating result object with handlers:", SHELL_OUTPUT_HANDLERS)
    global result_object
    result_object = Result(stream=sys.stdout, descriptions=None,
                           outputs=SHELL_OUTPUT_HANDLERS, main_test=None)

    result_object.startTestRun()
예제 #2
0
    def create_result(main_test):
        """Create a result object for the test and starts it.

        Args:
            main_test(TestSuite / TestCase): the test to be ran.

        Returns:
            Result. a new initiated result object.
        """
        result = Result(outputs=[DBHandler.NAME], main_test=main_test)
        result.startTestRun()
        return result
예제 #3
0
    def create_result(cls, main_test):
        """Create a result object for the test and starts it.

        Args:
            main_test(TestSuite / TestCase): the test to be ran.

        Returns:
            Result. a new initiated result object.
        """
        result = Result(outputs=[], main_test=main_test)
        for handler_class in cls.RESULT_OUTPUTS:
            result.result_handlers.append(
                handler_class(main_test=result.main_test))

        result.startTestRun()
        return result
예제 #4
0
    def _makeResult(self):
        """Create test result object.

        Returns:
            Result. test result object.
        """
        self.result = Result(stream=self.stream,
                             outputs=self.outputs,
                             main_test=self.test_item,
                             descriptions=self.descriptions)
        self.result.failfast = self.failfast

        return self.result
예제 #5
0
def pytest_sessionstart(session):
    """Read and initialize Rotest global fields."""
    config = session.config
    RotestRunContext.CONFIG = AttrDict(
        chain(
            six.iteritems(
                parse_config_file(DEFAULT_CONFIG_PATH, DEFAULT_SCHEMA_PATH)),
            six.iteritems(
                parse_config_file(config.option.config_path,
                                  DEFAULT_SCHEMA_PATH)),
            filter_valid_values({
                'outputs': config.option.outputs,
                'debug': config.option.ipdbugger
            })))

    if not session.config.option.collectonly:
        RotestRunContext.RUN_DATA = RunData(
            config=json.dumps(RotestRunContext.CONFIG))

        RotestRunContext.RESOURCE_MANAGER = ClientResourceManager(
            logger=core_log)

    class AlmightySuite(TestSuite):
        components = [TestCase]

    main_test = AlmightySuite(
        run_data=RotestRunContext.RUN_DATA,
        config=config,
        indexer=RotestRunContext.INDEXER,
        skip_init=RotestRunContext.CONFIG.skip_init,
        save_state=RotestRunContext.CONFIG.save_state,
        enable_debug=RotestRunContext.CONFIG.debug,
        resource_manager=RotestRunContext.RESOURCE_MANAGER)

    RotestRunContext.MAIN_TEST = main_test
    main_test._tests = []
    main_test.name = main_test.get_name()
    main_test.data = SuiteData(name=main_test.name,
                               run_data=RotestRunContext.RUN_DATA)

    if not session.config.option.collectonly:
        RotestRunContext.RUN_DATA.main_test = main_test.data
        RotestRunContext.RESULT = Result(
            stream=sys.stdout,
            outputs=RotestRunContext.CONFIG.outputs,
            main_test=main_test)
예제 #6
0
파일: shell.py 프로젝트: rinslow/rotest
import sys

import django
import IPython
from attrdict import AttrDict
from rotest.core.result.result import Result
from rotest.management.base_resource import BaseResource
from rotest.management.client.manager import ClientResourceManager
from rotest.common.config import SHELL_APPS, SHELL_STARTUP_COMMANDS
from rotest.core.runner import parse_config_file, DEFAULT_CONFIG_PATH
from rotest.core.result.handlers.stream.log_handler import LogDebugHandler

# Mock tests result object for running blocks
blocks_result = Result(stream=None,
                       descriptions=None,
                       outputs=[],
                       main_test=None)

# Mock tests configuration for running blocks
blocks_config = AttrDict(parse_config_file(DEFAULT_CONFIG_PATH))

# Container for data shared between blocks
shared_data = {}

ENABLE_DEBUG = False
IMPORT_BLOCK_UTILS = \
    "from rotest.management.utils.shell import shared_data, run_block"
IMPORT_RESOURCE_LOADER = \
    "from rotest.management.utils.resources_discoverer import get_resources"