mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	Prevent changes to files that weren't changed between releases. This eases review of the changes between releases significantly.
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| """
 | |
| ***************************************************************************
 | |
|     ScriptUtilsTest
 | |
|     ---------------------
 | |
|     Date                 : February 2019
 | |
|     Copyright            : (C) 2019 by Luigi Pirelli
 | |
|     Email                : luipir at gmail dot com
 | |
| ***************************************************************************
 | |
| *                                                                         *
 | |
| *   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__ = 'Luigi Pirelli'
 | |
| __date__ = 'February 2019'
 | |
| __copyright__ = '(C) 2019, Luigi Pirelli'
 | |
| 
 | |
| import os
 | |
| import shutil
 | |
| import tempfile
 | |
| 
 | |
| from qgis.core import NULL, QgsApplication
 | |
| from qgis.testing import start_app, unittest
 | |
| 
 | |
| from processing.script import ScriptUtils
 | |
| 
 | |
| testDataPath = os.path.join(os.path.dirname(__file__), 'testdata')
 | |
| 
 | |
| start_app()
 | |
| 
 | |
| 
 | |
| class ScriptUtilsTest(unittest.TestCase):
 | |
| 
 | |
|     @classmethod
 | |
|     def setUpClass(cls):
 | |
|         cls.cleanup_paths = []
 | |
| 
 | |
|     @classmethod
 | |
|     def tearDownClass(cls):
 | |
|         for path in cls.cleanup_paths:
 | |
|             shutil.rmtree(path)
 | |
| 
 | |
|     def testResetScriptFolder(self):
 | |
|         # if folder exist
 | |
|         defaultScriptFolder = ScriptUtils.defaultScriptsFolder()
 | |
|         folder = ScriptUtils.resetScriptFolder(defaultScriptFolder)
 | |
|         self.assertEqual(folder, defaultScriptFolder)
 | |
|         folder = ScriptUtils.resetScriptFolder('.')
 | |
|         self.assertEqual(folder, '.')
 | |
|         # if folder does not exist and not absolute
 | |
|         folder = ScriptUtils.resetScriptFolder('fake')
 | |
|         self.assertEqual(folder, None)
 | |
|         # if absolute but not relative to QgsApplication.qgisSettingsDirPath()
 | |
|         folder = os.path.join(tempfile.gettempdir(), 'fakePath')
 | |
|         newFolder = ScriptUtils.resetScriptFolder(folder)
 | |
|         self.assertEqual(newFolder, folder)
 | |
| 
 | |
|         # if absolute profile but poiting somewhere
 | |
|         # reset the path as pointing to profile into the current settings
 | |
|         folder = QgsApplication.qgisSettingsDirPath()
 | |
| 
 | |
|         # modify default profile changing absolute path pointing somewhere
 | |
|         paths = folder.split(os.sep)
 | |
|         paths[0] = '/'
 | |
|         paths[1] = 'fakelocation'
 | |
|         folder = os.path.join(*paths)
 | |
| 
 | |
|         folder = ScriptUtils.resetScriptFolder(folder)
 | |
|         self.assertEqual(folder, QgsApplication.qgisSettingsDirPath())
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     unittest.main()
 |