def __init__(self, _strTestName=None): EDTestCasePluginExecute.__init__(self, _strTestName) self.setConfigurationFile(self.getRefConfigFile()) edPluginMOSFLM = self.createPlugin() xsPluginItem = edPluginMOSFLM.getConfiguration() if xsPluginItem is None: xsPluginItem = EDApplication.getApplicationPluginConfiguration(self.getPluginName()) if xsPluginItem is None: # No application wide configuration file found! Try to find a project specific config file: xsPluginItem = EDApplication.getProjectPluginConfiguration(self.getPluginName()) if xsPluginItem is None: EDVerbose.DEBUG("EDPlugin.configure: No plugin configuration found for " + self.getPluginName()) xsPluginItem = XSPluginItem() else: edPluginMOSFLM.setConfiguration(xsPluginItem) # edPluginMOSFLM.configure() strMOSFLMVersion = edPluginMOSFLM.getStringConfigurationParameterValue("execProcessScriptVersionString") if strMOSFLMVersion.find("7.0.1") != -1: strResultDir = "executionTestResult_v701_20070820" elif strMOSFLMVersion.find("7.0.5") != -1: strResultDir = "executionTestResult_v706_20090812" elif strMOSFLMVersion.find("7.0.6") != -1: strResultDir = "executionTestResult_v706_20100126" else: strResultDir = "executionTestResult_v707_20101220" strPluginTestDataHome = self.getPluginTestsDataHome() self.strExecutionTestDataInputHome = os.path.join(strPluginTestDataHome, "executionTestInput") self.strExecutionTestDataResultHome = os.path.join(strPluginTestDataHome, strResultDir)
def configure(self): """ Configuration step of the plugin: mainly extend the timeout by 5 seconds to let the plugin finish. """ self.DEBUG("EDPluginWaitFile.configure : %s" % self.getClassName()) xsPluginItem = self.getConfiguration() if xsPluginItem is None: xsPluginItem = EDApplication.getApplicationPluginConfiguration(self.getPluginName()) if (xsPluginItem is None): # No application wide configuration file found! Try to find a project specific config file: xsPluginItem = EDApplication.getProjectPluginConfiguration(self.getPluginName()) if (xsPluginItem is None): self.DEBUG("EDPlugin.execute: No plugin configuration found for " + self.getPluginName()) xsPluginItem = XSPluginItem() else: self.setConfiguration(xsPluginItem) # Try to get time out from plugin configuration iTimeOut = EDConfiguration.getIntegerParamValue(xsPluginItem, EDPlugin.CONF_TIME_OUT) if iTimeOut is not None: self.DEBUG("EDPlugin.configure: Setting time out to %d s from plugin configuration." % iTimeOut) self.__timeout = iTimeOut self.setTimeOut(iTimeOut + EDPluginWaitFile.EXTRA_TIME)
def getPluginConfiguration(self, _strPluginName=None): # Load the configuration file if provided if _strPluginName == None: _strPluginName = self.getPluginName() if _strPluginName in self.__dictConfigurations : xsConfiguration = self.__dictConfigurations[_strPluginName] else: xsConfiguration = None if (self.__strConfigurationFile is not None): edConfigurationTest = EDConfiguration(self.__strConfigurationFile) edConfigurationTest.load() if (edConfigurationTest is not None): xsConfiguration = edConfigurationTest.getPluginItem(_strPluginName) if xsConfiguration is None: xsConfiguration = EDApplication.getApplicationPluginConfiguration(_strPluginName) if xsConfiguration is None: # No application wide configuration file found! Try to find a project specific config file: xsConfiguration = EDApplication.getProjectPluginConfiguration(_strPluginName) if xsConfiguration is None: EDVerbose.WARNING("EDTestCasePlugin.getPluginConfiguration: xsConfiguration is still None after all guesses: Expect to fail soon") self.__dictConfigurations[_strPluginName] = xsConfiguration return xsConfiguration
def getStringConfigurationParameterValue(self, _strConfigurationParameterName): """ This method returns a configuration parameter value if a corresponding configuration parameter name can be found in the configuration file. If an application wide configuration file is provided via EDApplication it will override the product configuration file. The configuration parameter is then searched in the configration file in following order: - If a plugin configuration item exists and the configration parameter name is present it will be used. - Otherwise if a product-wide (e.g. "mxPluginExec") configuration value exists it will be used. """ self.DEBUG("EDPlugin.getConfigurationParameterValue") strParameteValue = None xsPluginItem = self.getConfiguration() bFoundConfigurationParameter = False if xsPluginItem: strParameteValue = EDConfiguration.getParamItem(xsPluginItem, _strConfigurationParameterName).getValue() if strParameteValue: bFoundConfigurationParameter = True if not bFoundConfigurationParameter: xsPluginItem = EDApplication.getApplicationPluginConfiguration(self.getPluginName()) if xsPluginItem: strParameteValue = EDConfiguration.getParamItem(xsPluginItem, _strConfigurationParameterName).getValue() if strParameteValue: bFoundConfigurationParameter = True if not bFoundConfigurationParameter: xsPluginItem = EDApplication.getProjectPluginConfiguration(self.getPluginName()) if xsPluginItem: strParameteValue = EDConfiguration.getParamItem(xsPluginItem, _strConfigurationParameterName).getValue() if strParameteValue: bFoundConfigurationParameter = True return strParameteValue
def configure(self): """ Should be overridden by the Final Plugin If needed This method should set its proper members attributes from a Plugin configuration Object """ self.DEBUG("EDPlugin.configure : %s" % self.getClassName()) xsPluginItem = self.getConfiguration() if xsPluginItem is None: xsPluginItem = EDApplication.getApplicationPluginConfiguration(self.getPluginName()) if (xsPluginItem is None): # No application wide configuration file found! Try to find a project specific config file: xsPluginItem = EDApplication.getProjectPluginConfiguration(self.getPluginName()) if (xsPluginItem is None): self.DEBUG("EDPlugin.configure: No plugin configuration found for " + self.getPluginName()) xsPluginItem = XSPluginItem() else: self.setConfiguration(xsPluginItem) # set Timeout if different from default one if self.getTimeOut() == self.getDefaultTimeOut(): # Try to get time out from plugin configuration iTimeOut = EDConfiguration.getIntegerParamValue(xsPluginItem, EDPlugin.CONF_TIME_OUT) if iTimeOut is not None: self.DEBUG("EDPlugin.configure: Setting time out to %d s from plugin configuration." % iTimeOut) self.setTimeOut(iTimeOut) else: self.DEBUG("EDPlugin.configure: Working directory already set before plugin is configured.") # Base directory strBaseDirectory = self.getBaseDirectory() if (strBaseDirectory is None): # Try to get base directory from plugin configuration strBaseDirectory = EDConfiguration.getStringParamValue(xsPluginItem, EDPlugin.CONF_BASE_DIR_LABEL) if(strBaseDirectory is None): # Try to get working directory from environment variable strBaseDirectory = os.environ.get("EDNA_BASE_DIRECTORY") if (strBaseDirectory is None): self.DEBUG("EDPlugin.configure: Using current base directory as working directory.") strBaseDirectory = os.getcwd() else: self.DEBUG("EDPlugin.configure: Setting base directory from $EDNA_WORKING_DIRECTORY.") else: if (strBaseDirectory == "."): self.DEBUG("EDPlugin.configure: Using current base directory as working directory.") strBaseDirectory = os.getcwd() else: strBaseDirectory = os.path.abspath(strBaseDirectory) self.DEBUG("EDPlugin.configure: Setting base directory from plugin configuration.") self.setBaseDirectory(strBaseDirectory) else: self.DEBUG("EDPlugin.configure: Base directory already set before plugin is configured.") # Working directory strWorkingDirectory = self.getWorkingDirectory() if (strWorkingDirectory is None): # Try to get working directory from plugin configuration strWorkingDirectory = EDConfiguration.getStringParamValue(xsPluginItem, EDPlugin.CONF_WORKING_DIR_LABEL) if(strWorkingDirectory is not None): self.DEBUG("EDPlugin.configure: Setting working directory from plugin configuration.") else: self.DEBUG("EDPlugin.configure: Setting working directory as base directory + base name.") strWorkingDirectory = os.path.join(self.getBaseDirectory(), self.getBaseName()) self.setWorkingDirectory(strWorkingDirectory) else: self.DEBUG("EDPlugin.configure: Working directory already set before plugin is configured.") # strWriteXMLInputOutput = EDConfiguration.getStringParamValue(xsPluginItem, EDPlugin.CONF_WRITE_XML_INPUT_OUTPUT) if strWriteXMLInputOutput != None: if strWriteXMLInputOutput.lower().strip() in ["false", "0"]: self.__bWriteDataXMLInputOutput = False else: self.__bWriteDataXMLInputOutput = True strWriteXMLOutput = EDConfiguration.getStringParamValue(xsPluginItem, EDPlugin.CONF_WRITE_XML_OUTPUT) if strWriteXMLOutput != None: if strWriteXMLOutput.lower().strip() in ["false", "0"]: self.__bWriteDataXMLOutput = False else: self.__bWriteDataXMLOutput = True strWriteXMLInput = EDConfiguration.getStringParamValue(xsPluginItem, EDPlugin.CONF_WRITE_XML_INPUT) if strWriteXMLInput != None: if strWriteXMLInput.lower().strip() in ["false", "0"]: self.__bWriteDataXMLInput = False else: self.__bWriteDataXMLInput = True