1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
"""
***************************************************************************
grass_algorithms_raster_test_pt2.py
-----------------------------
Date : May 2016
Copyright : (C) 2016 by Médéric Ribreux
Email : mederic dot ribreux at medspx dot fr
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""
__author__ = "Médéric Ribreux"
__date__ = "May 2016"
__copyright__ = "(C) 2016, Médéric Ribreux"
import AlgorithmsTestBase
import nose2
import shutil
import os
import tempfile
from qgis.core import QgsApplication, QgsProcessingContext, QgsProcessingFeedback
from qgis.testing import QgisTestCase, start_app
from grassprovider.grass_provider import GrassProvider
from grassprovider.grass_utils import GrassUtils
testDataPath = os.path.join(os.path.dirname(__file__), "testdata")
class TestGrassAlgorithmsRasterTest(QgisTestCase, AlgorithmsTestBase.AlgorithmsTest):
@classmethod
def setUpClass(cls):
start_app()
cls.provider = GrassProvider()
QgsApplication.processingRegistry().addProvider(cls.provider)
cls.cleanup_paths = []
cls.temp_dir = tempfile.mkdtemp()
cls.cleanup_paths.append(cls.temp_dir)
assert GrassUtils.installedVersion()
@classmethod
def tearDownClass(cls):
QgsApplication.processingRegistry().removeProvider(cls.provider)
for path in cls.cleanup_paths:
shutil.rmtree(path)
def definition_file(self):
return "grass_algorithms_raster_tests2.yaml"
def testNeighbors(self):
context = QgsProcessingContext()
input_raster = os.path.join(
testDataPath, "custom", "grass7", "float_raster.tif"
)
alg = QgsApplication.processingRegistry().createAlgorithmById(
"grass:r.neighbors"
)
self.assertIsNotNone(alg)
temp_file = os.path.join(self.temp_dir, "grass_output.tif")
# Test an even integer for neighborhood size
parameters = {
"input": input_raster,
"selection": None,
"method": 0,
"size": 4,
"gauss": None,
"quantile": "",
"-c": False,
"-a": False,
"weight": "",
"output": temp_file,
"GRASS_REGION_PARAMETER": None,
"GRASS_REGION_CELLSIZE_PARAMETER": 0,
"GRASS_RASTER_FORMAT_OPT": "",
"GRASS_RASTER_FORMAT_META": "",
}
ok, msg = alg.checkParameterValues(parameters, context)
self.assertFalse(ok)
if __name__ == "__main__":
nose2.main()
|