eric7/Unittest/Interfaces/UTFrameworkRegistry.py

Mon, 16 May 2022 17:22:43 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 16 May 2022 17:22:43 +0200
branch
unittest
changeset 9065
39405e6eba20
parent 9062
7f27bf3b50c3
permissions
-rw-r--r--

Integrated the new testing widget into the eric IDE (compared to as a standalone app) and implemented the 'Show Source' functionality.

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

# Copyright (c) 2022 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing a simple registry containing the available test framework
interfaces.
"""

import copy


class UTFrameworkRegistry():
    """
    Class implementing a simple registry of test framework interfaces.
    
    The test executor for a framework is responsible for running the tests,
    receiving the results and preparing them for display. It must implement
    the interface of UTExecutorBase.

    Frameworks must first be registered using '.register()'. This registry
    can then create the assoicated test executor when '.createExecutor()' is
    called.
    """
    def __init__(self):
        """
        Constructor
        """
        self.__frameworks = {}
    
    def register(self, executorClass):
        """
        Public method to register a test framework executor.
        
        @param executorClass class implementing the test framework executor
        @type UTExecutorBase
        """
        self.__frameworks[executorClass.name] = executorClass
    
    def createExecutor(self, framework, widget):
        """
        Public method to create a test framework executor.
        
        Note: The executor classes have to be registered first.
        
        @param framework name of the test framework
        @type str
        @param widget reference to the unit test widget
        @type UnittestWidget
        @return test framework executor object
        @rtype UTExecutorBase
        """
        cls = self.__frameworks[framework]
        return cls(widget)
    
    def getFrameworks(self):
        """
        Public method to get a copy of the registered frameworks.
        
        @return  copy of the registered frameworks
        @rtype dict
        """
        return copy.copy(self.__frameworks)

eric ide

mercurial