Example #1
0
 def testRasterConfiguration(self):
     strPathToTestConfigFile = os.path.join(self.strUnitTestDataHome,
                                            "XSConfiguration_raster.xml")
     edConfiguration = EDConfiguration(strPathToTestConfigFile)
     dictItem = edConfiguration.get(self.getPluginName())
     xsDataMOSFLMInput = XSDataMOSFLMInput()
     xsDataMOSFLMBeam = XSDataMOSFLMBeamPosition()
     xsDataMOSFLMBeam.setX(XSDataLength(1.0))
     xsDataMOSFLMBeam.setY(XSDataLength(2.0))
     xsDataMOSFLMInput.setBeam(xsDataMOSFLMBeam)
     xsDataMOSFLMDetector = XSDataMOSFLMDetector()
     xsDataMOSFLMDetector.setType(XSDataString("ADSC"))
     xsDataMOSFLMInput.setDetector(xsDataMOSFLMDetector)
     xsDataMOSFLMInput.setDirectory(XSDataString("/tmp"))
     xsDataMOSFLMInput.setTemplate(XSDataString("testdata_1_###.img"))
     xsDataMOSFLMInput.setWavelength(XSDataWavelength(1.1111))
     xsDataMOSFLMInput.setDistance(XSDataLength(222.22))
     edPluginMOSFLMv10 = self.createPlugin()
     edPluginMOSFLMv10.setScriptExecutable("cat")
     edPluginMOSFLMv10.setConfig(dictItem, _bLocal=True)
     edPluginMOSFLMv10.configure()
     edPluginMOSFLMv10.setXSDataInputClass(XSDataMOSFLMInput)
     edPluginMOSFLMv10.setDataInput(xsDataMOSFLMInput)
     edPluginMOSFLMv10.generateMOSFLMCommands()
     edListCommands = edPluginMOSFLMv10.getListCommandExecution()
     edListCommandsReference = [
         'WAVELENGTH 1.1111', 'DISTANCE 222.22', 'BEAM 1.0 2.0',
         'DETECTOR ADSC', 'DIRECTORY /tmp', 'TEMPLATE testdata_1_###.img',
         'RASTER 15 15 3 3 3'
     ]
     EDAssert.equal(edListCommandsReference, edListCommands,
                    "MOSFLM commands with ratser configured")
 def testExecute(self):
     """
     Runs the plugin and then compares expected output with obtained output to verify that it executed correctly. 
     """
     #self.run()
     for i in range(1):
         # We set up the plugin manually as it has to be executed many times
         edPlugin = self.createPlugin()
         edConfiguration = EDConfiguration(self.getConfigurationFile())
         edConfiguration.load()
         edPlugin.setConfiguration(
             edConfiguration.getPluginItem(
                 "EDPluginISPyBStoreImageQualityIndicatorsv1_4"))
         edPlugin.setDataInput(
             EDUtilsFile.readFileAndParseVariables(self.getDataInputFile()))
         edPlugin.executeSynchronous()
         # Check that the id extists in the results
         xsDataResult = edPlugin.getDataOutput()
         bAttributeExists = True
         if xsDataResult.getImageQualityIndicatorsId() is None:
             bAttributeExists = False
         EDAssert.equal(
             True, bAttributeExists,
             "Attribute imageQualityIndicatorsId = %d in the result" %
             xsDataResult.imageQualityIndicatorsId.value)
 def testConfigureOK(self):
     edPluginControlIndexingv10 = self.createPlugin()
     strPathToTestConfigFile = os.path.join(self.getPluginTestsDataHome(), "XSConfiguration.xml")
     edConfiguration = EDConfiguration(strPathToTestConfigFile)
     dictItem = edConfiguration.get(edPluginControlIndexingv10.getPluginName())
     edPluginControlIndexingv10.setConfig(dictItem)
     edPluginControlIndexingv10.configure()
Example #4
0
 def testGenerateMOSFLMIntegrationCommands(self):
     strPathToTestConfigFile = os.path.join(self.strUnitTestDataHome,
                                            "XSConfiguration_unitTest.xml")
     edConfiguration = EDConfiguration(strPathToTestConfigFile)
     xsPluginItem = edConfiguration.getXSConfigurationItem(
         "EDPluginMOSFLMIntegrationv10")
     pluginIntegration = self.createPlugin()
     pluginIntegration.setScriptExecutable("cat")
     pluginIntegration.setConfiguration(xsPluginItem)
     pluginIntegration.configure()
     strXMLInputData = self.readAndParseFile(self.strReferenceDataInputFile)
     pluginIntegration.setDataInput(strXMLInputData)
     pluginIntegration.generateMOSFLMCommands()
     listCommandExecution = pluginIntegration.getListCommandExecution()
     listCommandReference = [
         'WAVELENGTH 0.934', 'DISTANCE 198.440994',
         'BEAM 102.478996 104.8862', 'DETECTOR ADSC',
         'DIRECTORY ' + self.strDataImagePath,
         'TEMPLATE ref-testscale_1_###.img', 'SYMMETRY P222',
         'MATRIX ' + pluginIntegration.getScriptBaseName() + '_matrix.mat',
         'MOSAIC 0.75', 'HKLOUT process_1_1.mtz',
         'PROCESS 1 TO 1 START 0.000000 ANGLE 1.000000', 'BEST ON', 'GO',
         'BEST OFF'
     ]
     EDAssert.equal(listCommandReference, listCommandExecution)
Example #5
0
 def testAddConfigFile(self):
     # Tests adding a config file
     strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
     edConfiguration = EDConfiguration()
     edConfiguration.addConfigurationFile(strPath)
     # Load the config file again, this time the cache should be used
     edConfiguration.addConfigurationFile(strPath)
Example #6
0
 def testGetXSConfigurationItem1(self):
     strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
     edConfiguration = EDConfiguration()
     edConfiguration.addConfigurationFile(strPath)
     xsDataPluginItem = edConfiguration.getXSConfigurationItem(
         "indexingMosflm")
     EDAssert.equal(True, xsDataPluginItem is not None,
                    "Obtanied configuration for indexingMosflm")
 def testConfigureOK(self):
     edPluginStrategy = self.createPlugin()
     strPathToTestConfigFile = os.path.join(self.getPluginTestsDataHome(),
                                            "XSConfiguration_ESRF.xml")
     edConfiguration = EDConfiguration(strPathToTestConfigFile)
     dictItem = edConfiguration.get(edPluginStrategy.getPluginName())
     edPluginStrategy.setConfig(dictItem)
     edPluginStrategy.configure()
Example #8
0
 def testGetPluginListSize(self):
     """
     Testing the retrieved XSPluginList size from configuration
     """
     strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
     edConfiguration = EDConfiguration()
     edConfiguration.addConfigurationFile(strPath)
     iPluginListSize = edConfiguration.getPluginListSize()
     EDAssert.equal(1, iPluginListSize)
Example #9
0
 def testSetXSConfigurationItem(self):
     xsPluginItem = XSPluginItem()
     xsPluginItem.name = "EDPluginTestSetConfig"
     edConfiguration = EDConfiguration()
     edConfiguration.setXSConfigurationItem(xsPluginItem)
     xsDataPluginItem = edConfiguration.getXSConfigurationItem(
         "EDPluginTestSetConfig")
     EDAssert.equal(True, xsDataPluginItem is not None,
                    "Obtanied set configuration")
Example #10
0
 def setConfiguration(self, _xsPluginItem):
     """
     Receives a Plugin Configuration as XSPluginItem or python dict from the application.
     """
     self.DEBUG("EDPlugin.setConfiguration")
     self.__edConfiguration = EDConfiguration()
     if isinstance(_xsPluginItem, dict):
         self.__edConfiguration[self.getPluginName()] = _xsPluginItem
     else:
         self.__edConfiguration.setXSConfigurationItem(_xsPluginItem)
Example #11
0
 def testGetPluginItemError(self):
     """
     Testing the retrieval of an absent plugin
     """
     strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
     edConfiguration = EDConfiguration()
     edConfiguration.addConfigurationFile(strPath)
     xsPluginItem = edConfiguration.getXSConfigurationItem("toto")
     EDAssert.equal(None, xsPluginItem,
                    "Non-existing configuration item should be None")
Example #12
0
 def testGetParamItem(self):
     """
     Testing the XSParamItem inside an XSPluginItem
     """
     strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
     edConfiguration = EDConfiguration()
     edConfiguration.addConfigurationFile(strPath)
     strValue = edConfiguration.getStringValue("indexingMosflm",
                                               "workingDir")
     EDAssert.equal("/path/to/working/dir", strValue)
Example #13
0
 def setConfig(self, _dict, _bLocal=False):
     """
     Receives a dictionary (Plugin Configuration) from the application.
     """
     self.DEBUG("EDPlugin.setConfiguration")
     if _bLocal:
         self.__edConfiguration = EDConfiguration()
     if _dict is not None:
         self.__edConfiguration[self.getPluginName()] = _dict
     else:
         self.__edConfiguration[self.getPluginName()] = {}
Example #14
0
 def testSendEmail(self):
     pluginMXCuBE = self.createPlugin()
     strPathToTestConfig = os.path.join(self.getPluginTestsDataHome(),
                                        "XSConfiguration.xml")
     edConfiguration = EDConfiguration(strPathToTestConfig)
     edConfiguration.load()
     EDApplication.setConfiguration(edConfiguration)
     pluginMXCuBE.configure()
     pluginMXCuBE.sendEmail(
         "EDTestCasePluginUnitControlInterfaceToMXCuBEv1_2sendEmail: Test subject",
         "EDTestCasePluginUnitControlInterfaceToMXCuBEv1_2sendEmail: Test message"
     )
    def testUpdateChemicalCompositionWithNativeSulfurAtom(self):

        edPluginStrategy = self.createPlugin()
        strPathToTestConfigFile = os.path.join(self.getPluginTestsDataHome(),
                                               "XSConfiguration_ESRF.xml")
        edConfiguration = EDConfiguration(strPathToTestConfigFile)
        dictItem = edConfiguration.get(edPluginStrategy.getPluginName())
        edPluginStrategy.setConfig(dictItem)
        edPluginStrategy.configure()

        xsDataStructure = XSDataStructure()
        xsDataComposition = XSDataChemicalCompositionMM()
        xsDataChain = XSDataChain()
        xsDataChain.setType(XSDataString("protein"))
        xsDataChain.setNumberOfCopies(XSDataDouble(2))
        xsDataChain.setNumberOfMonomers(XSDataDouble(60))
        xsDataStructure.addChain(xsDataChain)
        xsDataComposition.setStructure(xsDataStructure)
        updatedChemicalComposition = edPluginStrategy.updateChemicalComposition(
            xsDataComposition)
        EDAssert.equal(
            3,
            updatedChemicalComposition.getStructure().getChain()
            [0].getHeavyAtoms().getAtom()[0].getNumberOf().getValue())
        EDAssert.equal(
            "S",
            updatedChemicalComposition.getStructure().getChain()
            [0].getHeavyAtoms().getAtom()[0].getSymbol().getValue())

        xsDataStructure = XSDataStructure()
        xsDataComposition = XSDataChemicalCompositionMM()
        xsDataChain = XSDataChain()
        xsDataChain.setType(XSDataString("protein"))
        xsDataChain.setNumberOfCopies(XSDataDouble(2))
        xsDataChain.setNumberOfMonomers(XSDataDouble(60))
        xsDataAtom1 = XSDataAtom()
        xsDataAtom1.setSymbol(XSDataString("Se"))
        xsDataAtom1.setNumberOf(XSDataDouble(4))
        xsDataAtomicComposition = XSDataAtomicComposition()
        xsDataAtomicComposition.addAtom(xsDataAtom1)
        xsDataChain.setHeavyAtoms(xsDataAtomicComposition)
        xsDataStructure.addChain(xsDataChain)
        xsDataComposition.setStructure(xsDataStructure)
        updatedChemicalComposition = edPluginStrategy.updateChemicalComposition(
            xsDataComposition)
        heavyAtoms = updatedChemicalComposition.getStructure().getChain(
        )[0].getHeavyAtoms().getAtom()
        for heavyAtom in heavyAtoms:
            self.unitTest(heavyAtom.getSymbol().getValue() + " : " +
                          str(heavyAtom.getNumberOf().getValue()))
            if (heavyAtom.getSymbol().getValue() == "S"):
                EDAssert.equal(3, heavyAtom.getNumberOf().getValue())
Example #16
0
 def testStaticEDConfiguration(self):
     # This test make sure that changing an instatiation of EDConfiguration does not change the
     # corresponding plugin configuration for EDConfigurationStatic
     strPathToTestConfigFile = os.path.join(
         self.strDataPath, "XSConfiguration_testNonStatic.xml")
     edConfiguration = EDConfiguration(strPathToTestConfigFile)
     strParam1 = edConfiguration.getStringValue("EDPluginTestPluginFactory",
                                                "testItemName")
     EDUtilsPath.setEdnaSite("TestStaticConfiguration")
     strParam2 = EDConfigurationStatic.getStringValue(
         "EDPluginTestPluginFactory", "testItemName")
     EDAssert.equal(False, strParam1 == strParam2,
                    "Static config is not equal to local config")
Example #17
0
 def testGetPathToProjectConfigurationFile(self):
     edConfiguration = EDConfiguration()
     strPathToConfigurationFile1 = edConfiguration.getPathToProjectConfigurationFile(
         "EDPluginTestPluginFactory")
     strPathToConfigurationFileReference1 = EDUtilsPath.appendListOfPaths(EDUtilsPath.getEdnaHome(),
                                                                               [ "kernel", "tests", "data", "EDFactoryPlugin", \
                                                                                "testProject", "conf", "XSConfiguration_TestSite.xml" ])
     EDAssert.equal(strPathToConfigurationFileReference1,
                    strPathToConfigurationFile1)
     EDUtilsPath.setEdnaSite("NonexistingTestSite")
     strPathToConfigurationFile2 = edConfiguration.getPathToProjectConfigurationFile(
         "EDPluginTestPluginFactory")
     strPathToConfigurationFileReference2 = None
     EDAssert.equal(strPathToConfigurationFileReference2,
                    strPathToConfigurationFile2)
    def testSetDataInput(self):
        edPluginControlIndexingv10 = self.createPlugin()
        strPathToTestConfigFile = os.path.join(self.getPluginTestsDataHome(), "XSConfiguration.xml")
        edConfiguration = EDConfiguration(strPathToTestConfigFile)
        dictItem = edConfiguration.get(edPluginControlIndexingv10.getPluginName())
        edPluginControlIndexingv10.setConfig(dictItem)
        edPluginControlIndexingv10.configure()

        xmlInput = self.readAndParseFile(self.__strReferenceInputFile)
        edPluginControlIndexingv10.setDataInput(xmlInput)

        xsDataIndexingv01Input = edPluginControlIndexingv10.getDataInput()

        xsDataIndexingInputReference = XSDataIndexingInput.parseString(xmlInput)
        EDAssert.equal(xsDataIndexingInputReference.marshal(), xsDataIndexingv01Input.marshal())

        self.cleanUp(edPluginControlIndexingv10)
    def testConfigureOK(self):
        edPluginRaddose = self.createPlugin()
        edConfigurationGood01 = EDConfiguration(
            os.path.join(self.strDataPath, "XSConfiguration.xml"))
        dictItemGood01 = edConfigurationGood01.get(self.getPluginName())
        edPluginRaddose.setConfig(dictItemGood01, _bLocal=True)
        edPluginRaddose.setScriptExecutable("cat")
        edPluginRaddose.configure()
        EDAssert.equal("/bin/bash", edPluginRaddose.getScriptShell())
        EDAssert.equal("cat", edPluginRaddose.getScriptExecutable())
        EDAssert.equal("/opt/pxsoft/ccp4-6.0.2/include/ccp4.setup-bash.orig",
                       edPluginRaddose.getSetupCCP4())
        EDAssert.equal("Verion of Raddose to be tested",
                       edPluginRaddose.getStringVersion())
        #EDAssert.equal(600, edPluginMessage.getTimeOut())

        self.cleanUp(edPluginRaddose)
Example #20
0
    def testGetPluginItem(self):
        """
        Testing Plugin indexingMosflm Configuration
        """
        strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
        edConfiguration = EDConfiguration()
        edConfiguration.addConfigurationFile(strPath)
        xsPluginItem = edConfiguration.getXSConfigurationItem("indexingMosflm")
        EDAssert.equal("indexingMosflm", xsPluginItem.getName())

        paramList = xsPluginItem.getXSParamList()
        paramItems = paramList.getXSParamItem()

        EDAssert.equal("workingDir", paramItems[0].getName())
        EDAssert.equal("/path/to/working/dir", paramItems[0].getValue())
        EDAssert.equal("number", paramItems[1].getName())
        EDAssert.equal("3", paramItems[1].getValue())
Example #21
0
 def testGetParamValue(self):
     """
     Testing the XSParamItem Value convertion from string to different formats
     """
     strPath = os.path.join(self.strDataPath, "XSConfiguration.xml")
     edConfiguration = EDConfiguration()
     edConfiguration.addConfigurationFile(strPath)
     xsPluginItem = edConfiguration.getXSConfigurationItem("indexingMosflm")
     EDAssert.equal(
         "/path/to/working/dir",
         edConfiguration.getStringParamValue(xsPluginItem, "workingDir"))
     EDAssert.equal(
         "/path/to/working/dir",
         EDConfiguration.getStringParamValue(xsPluginItem, "workingDir"))
     EDAssert.equal(
         3, edConfiguration.getIntegerParamValue(xsPluginItem, "number"))
     EDAssert.equal(
         3, EDConfiguration.getIntegerParamValue(xsPluginItem, "number"))
Example #22
0
 def getPluginConfiguration(self, _strConfigurationFileName):
     """
     Returns the plugin configuration from a configuration file
     """
     xsPluginItem = None
     edConfiguration = EDConfiguration(_strConfigurationFileName)
     if (edConfiguration != None):
         xsPluginItem = edConfiguration.getXSConfigurationItem(
             self.getPluginName())
         if (xsPluginItem == None):
             EDVerbose.warning(
                 "EDTestCasePluginUnit.getPluginConfiguration: Could not get configuration plugin item for: "
                 + self.getPluginName())
     else:
         EDVerbose.warning(
             "EDTestCasePluginUnit.getPluginConfiguration: Could not load Configuration: "
             + _strConfigurationFileName)
     return xsPluginItem
Example #23
0
 def testGetXSConfigurationItem2(self):
     edConfiguration = EDConfiguration()
     xsDataPluginItem1 = edConfiguration.getXSConfigurationItem(
         "EDPluginTestPluginFactory")
     EDAssert.equal(True, xsDataPluginItem1 is not None,
                    "Obtanied configuration for EDPluginTestPluginFactory")
     xsDataPluginItem2 = edConfiguration.getXSConfigurationItem(
         "EDPluginTestPluginFactoryImport1")
     EDAssert.equal(
         True, xsDataPluginItem2 is not None,
         "Obtanied imported configuration for EDPluginTestPluginFactoryImport1"
     )
     xsDataPluginItem3 = edConfiguration.getXSConfigurationItem(
         "EDPluginTestPluginFactoryImport2")
     EDAssert.equal(
         True, xsDataPluginItem3 is not None,
         "Obtanied imported configuration for EDPluginTestPluginFactoryImport2"
     )
Example #24
0
 def testConfigureOK(self):
     edPluginBest = self.createPlugin()
     edConfigurationGood01 = EDConfiguration(
         os.path.join(self.strDataPath, "XSConfiguration.xml"))
     dictItemGood01 = edConfigurationGood01.get(self.getPluginName())
     edPluginBest.setConfig(dictItemGood01, _bLocal=True)
     edPluginBest.setScriptExecutable("cat")
     edPluginBest.configure()
     EDAssert.equal("/bin/bash", edPluginBest.getScriptShell())
     EDAssert.equal("cat", edPluginBest.getScriptExecutable())
     EDAssert.equal("/opt/pxsoft/ccp4-6.0.2/include/ccp4.setup-bash.orig",
                    edPluginBest.getSetupCCP4())
     EDAssert.equal("Version of Best to be tested",
                    edPluginBest.getStringVersion())
     EDAssert.equal(600, edPluginBest.getTimeOut())
     EDAssert.equal("/home/sweet/home", edPluginBest.getBestHome())
     EDAssert.equal("export besthome=/home/sweet/home",
                    edPluginBest.getCommandBestHome())
     self.cleanUp(edPluginBest)
    def testSetDataModelInput(self):
        edPluginStrategy = self.createPlugin()
        strPathToTestConfigFile = os.path.join(self.getPluginTestsDataHome(),
                                               "XSConfiguration_ESRF.xml")
        edConfiguration = EDConfiguration(strPathToTestConfigFile)
        dictItem = edConfiguration.get(edPluginStrategy.getPluginName())
        edPluginStrategy.setConfig(dictItem)
        edPluginStrategy.configure()

        xsDataStrategy = XSDataInputStrategy()

        # Beam

        xsExperimentalCondition = XSDataExperimentalCondition()

        xsBeam = XSDataBeam()
        xsBeam.setFlux(XSDataFlux(1e+12))
        xsBeam.setWavelength(XSDataWavelength(2.41))
        xsBeam.setSize(XSDataSize(x=XSDataLength(0.1), y=XSDataLength(0.1)))
        xsBeam.setExposureTime(XSDataTime(1))

        xsExperimentalCondition.setBeam(xsBeam)

        # Detector and Exposure Time

        xsDataDetector = XSDataDetector()
        xsDataDetector.setType(XSDataString("q210-2x"))
        xsExperimentalCondition.setDetector(xsDataDetector)

        xsDataGoniostat = XSDataGoniostat()
        xsDataGoniostat.setRotationAxis(XSDataString("phi"))
        xsExperimentalCondition.setGoniostat(xsDataGoniostat)

        xsDataStrategy.setExperimentalCondition(xsExperimentalCondition)

        # Best Files
        bestFileContentDat = EDUtilsFile.readFile(
            os.path.join(self.strDataPath, "bestfile.dat"))
        xsDataStrategy.setBestFileContentDat(XSDataString(bestFileContentDat))
        bestFileContentPar = EDUtilsFile.readFile(
            os.path.join(self.strDataPath, "bestfile.par"))
        xsDataStrategy.setBestFileContentPar(XSDataString(bestFileContentPar))
        bestFileContentHKL = EDUtilsFile.readFile(
            os.path.join(self.strDataPath, "bestfile1.hkl"))
        xsDataStrategy.addBestFileContentHKL(XSDataString(bestFileContentHKL))

        # Crystal

        xsDataSampleCrystalMM = XSDataSampleCrystalMM()
        xsDataStructure = XSDataStructure()
        xsDataComposition = XSDataChemicalCompositionMM()

        xsDataChain = XSDataChain()
        xsDataChain.setType(XSDataString("protein"))
        xsDataChain.setNumberOfCopies(XSDataDouble(2))
        xsDataAtomicComposition = XSDataAtomicComposition()
        xsDataAtom1 = XSDataAtom()
        xsDataAtom1.setSymbol(XSDataString("Se"))
        xsDataAtom1.setNumberOf(XSDataDouble(4))
        xsDataAtomicComposition.addAtom(xsDataAtom1)

        xsDataChain.setHeavyAtoms(xsDataAtomicComposition)
        xsDataChain.setNumberOfMonomers(XSDataDouble(100))
        xsDataStructure.addChain(xsDataChain)

        xsDataChain2 = XSDataChain()
        xsDataChain2.setType(XSDataString("rna"))
        xsDataChain2.setNumberOfCopies(XSDataDouble(1))
        xsDataChain2.setNumberOfMonomers(XSDataDouble(60))
        xsDataStructure.addChain(xsDataChain2)

        xsDataLigand = XSDataLigand()
        xsDataLigand.setNumberOfCopies(XSDataDouble(2))
        xsDataLigand.setNumberOfLightAtoms(XSDataDouble(42))
        xsDataAtomicComposition = XSDataAtomicComposition()
        xsDataAtom2 = XSDataAtom()
        xsDataAtom2.setSymbol(XSDataString("Fe"))
        xsDataAtom2.setNumberOf(XSDataDouble(1))
        xsDataAtomicComposition.addAtom(xsDataAtom2)
        xsDataLigand.setHeavyAtoms(xsDataAtomicComposition)
        xsDataStructure.addLigand(xsDataLigand)
        xsDataStructure.setNumberOfCopiesInAsymmetricUnit(XSDataDouble(0.25))

        xsDataSolvent = XSDataSolvent()
        xsDataAtomicComposition = XSDataAtomicComposition()

        xsDataAtom3 = XSDataAtom()
        xsDataAtom3.setSymbol(XSDataString("Na"))
        xsDataAtom3.setConcentration(XSDataDouble(1000))
        xsDataAtom4 = XSDataAtom()
        xsDataAtom4.setSymbol(XSDataString("Cl"))
        xsDataAtom4.setConcentration(XSDataDouble(1000))

        xsDataAtomicComposition.addAtom(xsDataAtom3)
        xsDataAtomicComposition.addAtom(xsDataAtom4)
        xsDataSolvent.setAtoms(xsDataAtomicComposition)

        xsDataComposition.setStructure(xsDataStructure)
        xsDataComposition.setSolvent(xsDataSolvent)
        xsDataSampleCrystalMM.setChemicalComposition(xsDataComposition)

        xsDataSampleCrystalMM.setSize(
            XSDataSize(XSDataLength(0.1), XSDataLength(0.1),
                       XSDataLength(0.1)))

        xsDataCrystal = XSDataCrystal()
        xsDataCell = XSDataCell(angle_alpha=XSDataAngle(90.0),
                                angle_beta=XSDataAngle(90.0),
                                angle_gamma=XSDataAngle(90.0),
                                length_a=XSDataLength(78.9),
                                length_b=XSDataLength(95.162),
                                length_c=XSDataLength(104.087))
        xsDataCrystal.setCell(xsDataCell)

        xsDataSpaceGroup = XSDataSpaceGroup()
        xsDataSpaceGroup.setITNumber(XSDataInteger(16))
        xsDataCrystal.setSpaceGroup(xsDataSpaceGroup)

        xsDataSampleCrystalMM.setSusceptibility(XSDataDouble(1.5))

        xsDataStrategy.setCrystalRefined(xsDataCrystal)

        xsDataStrategy.setSample(xsDataSampleCrystalMM)

        xsDataStrategy.exportToFile(self.strObtainedInputFile)

        pyStrExpectedInput = self.readAndParseFile(self.strReferenceInputFile)
        pyStrObtainedInput = self.readAndParseFile(self.strObtainedInputFile)

        xsDataInputExpected = XSDataInputStrategy.parseString(
            pyStrExpectedInput)
        xsDataInputObtained = XSDataInputStrategy.parseString(
            pyStrObtainedInput)

        EDAssert.equal(xsDataInputExpected.marshal(),
                       xsDataInputObtained.marshal())
Example #26
0
    def testSetDataModelInput(self):
        edPluginBest = self.createPlugin()
        edConfigurationGood01 = EDConfiguration(
            os.path.join(self.strDataPath, "XSConfiguration.xml"))
        dictItemGood01 = edConfigurationGood01.get(self.getPluginName())
        edPluginBest.setConfig(dictItemGood01, _bLocal=True)
        edPluginBest.setScriptExecutable("cat")
        edPluginBest.configure()

        from XSDataBestv1_3 import XSDataInputBest
        xsDataInputBest = XSDataInputBest()

        from XSDataCommon import XSDataAbsorbedDoseRate
        from XSDataCommon import XSDataDouble
        from XSDataCommon import XSDataString
        from XSDataCommon import XSDataTime
        from XSDataCommon import XSDataFile
        from XSDataCommon import XSDataAngularSpeed
        from XSDataCommon import XSDataString
        from XSDataCommon import XSDataAngle
        from XSDataCommon import XSDataBoolean

        xsDataInputBest.setCrystalAbsorbedDoseRate(
            XSDataAbsorbedDoseRate(0.22E+06))
        xsDataInputBest.setCrystalShape(XSDataDouble(1))
        xsDataInputBest.setCrystalSusceptibility(XSDataDouble(1.5))
        xsDataInputBest.setDetectorType(XSDataString("q210-2x"))
        xsDataInputBest.setBeamExposureTime(XSDataTime(1))
        xsDataInputBest.setBeamMaxExposureTime(XSDataTime(10000))
        xsDataInputBest.setBeamMinExposureTime(XSDataTime(0.1))
        xsDataInputBest.setGoniostatMinRotationWidth(XSDataAngle(0.1))
        xsDataInputBest.setGoniostatMaxRotationSpeed(XSDataAngularSpeed(10))
        xsDataInputBest.setAimedResolution(XSDataDouble(2))
        xsDataInputBest.setAimedRedundancy(XSDataDouble(6.5))
        xsDataInputBest.setAimedCompleteness(XSDataDouble(0.9))
        xsDataInputBest.setAimedIOverSigma(XSDataDouble(3))
        xsDataInputBest.setComplexity(XSDataString("min"))
        xsDataInputBest.setAnomalousData(XSDataBoolean(False))
        fileDirectory = edPluginBest.getWorkingDirectory()

        bestFileContentDat = EDUtilsFile.readFile(
            os.path.join(self.strDataPath, "bestfile.dat"))
        xsDataInputBest.setBestFileContentDat(XSDataString(bestFileContentDat))

        bestFileContentPar = EDUtilsFile.readFile(
            os.path.join(self.strDataPath, "bestfile.par"))
        xsDataInputBest.setBestFileContentPar(XSDataString(bestFileContentPar))

        bestFileContentHKL = EDUtilsFile.readFile(
            os.path.join(self.strDataPath, "bestfile1.hkl"))
        xsDataInputBest.addBestFileContentHKL(XSDataString(bestFileContentHKL))

        xsDataInputBest.exportToFile(self.obtainedInputFile)

        pyStrExpectedInput = self.readAndParseFile(self.referenceInputFile)
        pyStrObtainedInput = self.readAndParseFile(self.obtainedInputFile)

        xsDataInputExpected = XSDataInputBest.parseString(pyStrExpectedInput)
        xsDataInputObtained = XSDataInputBest.parseString(pyStrObtainedInput)

        EDAssert.equal(xsDataInputExpected.marshal(),
                       xsDataInputObtained.marshal())
        EDUtilsFile.deleteFile(self.obtainedInputFile)

        self.cleanUp(edPluginBest)