def testRemoveParameter(self): folder = os.path.join(os.path.dirname(ModelerAlgorithmProvider.__file__), "models") modelfile = os.path.join(folder, "watersheds.model") model = ModelerAlgorithm() model.openModel(modelfile) self.assertTrue(2, len(model.parameters)) self.assertFalse(model.removeParameter(0)) self.assertTrue(2, len(model.parameters))
def modelSuite(modelFile, dialog="none", threaded=True, unthreaded=True): s = unittest.TestSuite() model = ModelerAlgorithm() model.openModel(modelFile) if model.provider is None: # might happen if model is opened from modeler dialog model.provider = Providers.providers["model"] if threaded: s.addTest(SextanteProviderTestCase(modelFile, model, True, dialog)) if unthreaded: s.addTest(SextanteProviderTestCase(modelFile, model, False, dialog)) return s
def modelSuite(modelFile, dialog = "none", threaded = True, unthreaded = True): s = unittest.TestSuite() model = ModelerAlgorithm() model.openModel(modelFile) if model.provider is None: # might happen if model is opened from modeler dialog model.provider = Providers.providers["model"] if threaded: s.addTest(SextanteProviderTestCase(modelFile, model, True, dialog)) if unthreaded: s.addTest(SextanteProviderTestCase(modelFile, model, False, dialog)) return s
def _loadAlgorithms(self): folder = ModelerUtils.modelsFolder() for descriptionFile in os.listdir(folder): if descriptionFile.endswith("model"): try: alg = ModelerAlgorithm() fullpath = os.path.join(ModelerUtils.modelsFolder(),descriptionFile) alg.openModel(fullpath) if alg.name.strip() != "": alg.provider = self self.algs.append(alg) except WrongModelException,e: SextanteLog.addToLog(SextanteLog.LOG_ERROR,"Could not load model " + descriptionFile + "\n" + e.msg)
def loadFromFolder(self,folder): if not os.path.exists(folder): return for descriptionFile in os.listdir(folder): if descriptionFile.endswith("model"): try: alg = ModelerAlgorithm() fullpath = os.path.join(folder ,descriptionFile) alg.openModel(fullpath) if alg.name.strip() != "": alg.provider = self self.algs.append(alg) except WrongModelException,e: SextanteLog.addToLog(SextanteLog.LOG_ERROR,"Could not load model " + descriptionFile + "\n" + e.msg)
def loadFromFolder(self, folder): if not os.path.exists(folder): return for descriptionFile in os.listdir(folder): if descriptionFile.endswith("model"): try: alg = ModelerAlgorithm() fullpath = os.path.join(folder, descriptionFile) alg.openModel(fullpath) if alg.name.strip() != "": alg.provider = self self.algs.append(alg) except WrongModelException, e: SextanteLog.addToLog( SextanteLog.LOG_ERROR, "Could not load model " + descriptionFile + "\n" + e.msg)
def testRemoveAlgorithm(self): folder = os.path.join(os.path.dirname(ModelerAlgorithmProvider.__file__), "models") modelfile = os.path.join(folder, "noinputs.model") model = ModelerAlgorithm() model.openModel(modelfile) model.provider = Providers.providers['model'] self.assertTrue(2, len(model.algs)) self.assertFalse(model.removeAlgorithm(0)) self.assertTrue(model.removeAlgorithm(len(model.algs) - 1)); model.execute(None) outputs = model.outputs self.assertEquals(1, len(outputs)) output=outputs[0].value self.assertTrue(os.path.exists(output))
def testRemoveAlgorithm(self): folder = os.path.join( os.path.dirname(ModelerAlgorithmProvider.__file__), "models") modelfile = os.path.join(folder, "noinputs.model") model = ModelerAlgorithm() model.openModel(modelfile) self.assertTrue(2, len(model.algs)) self.assertFalse(model.removeAlgorithm(0)) self.assertTrue(model.removeAlgorithm(len(model.algs) - 1)) outputs = model.execute(None) self.assertEquals(2, len(outputs)) output = outputs['SAVENAME_ALG0'] layer = QGisLayers.getObjectFromUri(output, True) self.assertIsNone(layer)
def testRemoveAlgorithm(self): folder = os.path.join(os.path.dirname(ModelerAlgorithmProvider.__file__), "models") modelfile = os.path.join(folder, "noinputs.model") model = ModelerAlgorithm() model.openModel(modelfile) self.assertTrue(2, len(model.algs)) self.assertFalse(model.removeAlgorithm(0)) self.assertTrue(model.removeAlgorithm(len(model.algs) - 1)); outputs = model.execute(None) self.assertEquals(2, len(outputs)) output=outputs['SAVENAME_ALG0'] layer=QGisLayers.getObjectFromUri(output, True) self.assertIsNone(layer)
def testComputingDependecies(self): folder = os.path.join(os.path.dirname(ModelerAlgorithmProvider.__file__), "models") modelfile = os.path.join(folder, "watersheds.model") model = ModelerAlgorithm() model.openModel(modelfile) self.assertTrue(2, len(model.parameters)) self.assertTrue(5, len(model.algs)) dependent = model.getDependentAlgorithms(0) self.assertEquals([0,1,2,3,4], dependent) dependent = model.getDependentAlgorithms(1) self.assertEquals([1,2,3,4], dependent) dependent = model.getDependentAlgorithms(2) self.assertEquals([2,3,4], dependent) dependent = model.getDependentAlgorithms(3) self.assertEquals([3,4], dependent) dependent = model.getDependentAlgorithms(4) self.assertEquals([4], dependent) depends = model.getDependsOnAlgorithms(0) self.assertEquals([], depends) depends = model.getDependsOnAlgorithms(1) self.assertEquals([0], depends) depends = model.getDependsOnAlgorithms(2) self.assertEquals([1,0], depends) depends = model.getDependsOnAlgorithms(3) self.assertEquals([2,1,0], depends) depends = model.getDependsOnAlgorithms(4) self.assertEquals([3,2,1,0], depends)