QGIS/python/plugins/processing/tests/Grass7AlgorithmsRasterTestPt2.py

101 lines
3.2 KiB
Python

# -*- coding: utf-8 -*-
"""
***************************************************************************
Grass7AlgorithmsRasterTestPt2.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 (
start_app,
unittest
)
from processing.algs.grass7.Grass7Utils import Grass7Utils
testDataPath = os.path.join(os.path.dirname(__file__), 'testdata')
class TestGrass7AlgorithmsRasterTest(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
@classmethod
def setUpClass(cls):
start_app()
from processing.core.Processing import Processing
Processing.initialize()
cls.cleanup_paths = []
cls.temp_dir = tempfile.mkdtemp()
cls.cleanup_paths.append(cls.temp_dir)
assert Grass7Utils.installedVersion()
@classmethod
def tearDownClass(cls):
from processing.core.Processing import Processing
Processing.deinitialize()
for path in cls.cleanup_paths:
shutil.rmtree(path)
def test_definition_file(self):
return 'grass7_algorithms_raster_tests2.yaml'
def testNeighbors(self):
context = QgsProcessingContext()
input_raster = os.path.join(testDataPath, 'custom', 'grass7', 'float_raster.tif')
alg = QgsApplication.processingRegistry().createAlgorithmById('grass7: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()