# -*- coding: utf-8 -*- """ *************************************************************************** --------------------- Date : 30.11.2017 Copyright : (C) 2017 by Benjamin Jakimow Email : benjamin jakimow at geo dot hu-berlin dot de *************************************************************************** * * * 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. * * * *************************************************************************** """ # noinspection PyPep8Naming import os, sys, configparser from eotimeseriesviewer.tests import initQgisApplication, testRasterFiles from qgis.PyQt.QtGui import * from qgis.PyQt.QtCore import * from qgis.core import * from qgis.gui import * from qgis.testing import TestCase import unittest, tempfile import eotimeseriesviewer eotimeseriesviewer.initResources() from eotimeseriesviewer.mapcanvas import * from eotimeseriesviewer.tests import TestObjects QGIS_APP = initQgisApplication() SHOW_GUI = True and os.environ.get('CI') is None class TestInit(TestCase): """Test that the plugin init is usable for QGIS. Based heavily on the validator class by Alessandro Passoti available here: http://github.com/qgis/qgis-django/blob/master/qgis-app/ plugins/validator.py """ def test_read_init(self): """Test that the plugin __init__ will validate on plugins.qgis.org.""" # You should update this list according to the latest in # https://github.com/qgis/qgis-django/blob/master/qgis-app/plugins/validator.py required_metadata = [ 'name', 'description', 'version', 'qgisMinimumVersion', 'email', 'author'] file_path = os.path.abspath(os.path.join( os.path.dirname(__file__), os.pardir, 'metadata.txt')) metadata = [] parser = configparser.ConfigParser() parser.optionxform = str parser.read(file_path) message = 'Cannot find a section named "general" in %s' % file_path assert parser.has_section('general'), message metadata.extend(parser.items('general')) for expectation in required_metadata: message = ('Cannot find metadata "%s" in metadata source (%s).' % ( expectation, file_path)) self.assertIn(expectation, dict(metadata), message) def test_TimeSeriesViewer(self): from eotimeseriesviewer.main import TimeSeriesViewer TSV = TimeSeriesViewer() TSV.show() TSV.loadExampleTimeSeries() tsd = TSV.timeSeries()[-1] TSV.showTimeSeriesDatum(tsd) if SHOW_GUI: QGIS_APP.exec_() def test_TimeSeriesViewerMultiSource(self): from eotimeseriesviewer.main import TimeSeriesViewer TSV = TimeSeriesViewer() TSV.show() paths = TestObjects.createMultiSourceTimeSeries() TSV.addTimeSeriesImages(paths) if SHOW_GUI: QGIS_APP.exec_() def test_AboutDialog(self): from eotimeseriesviewer.main import AboutDialogUI dialog = AboutDialogUI() dialog.show() self.assertIsInstance(dialog, QDialog) if SHOW_GUI: QGIS_APP.exec_() def test_exportMapsToImages(self): from eotimeseriesviewer.main import TimeSeriesViewer, SaveAllMapsDialog d = SaveAllMapsDialog() self.assertEqual(d.fileType(), 'PNG') TSV = TimeSeriesViewer() TSV.show() paths = TestObjects.createMultiSourceTimeSeries() TSV.addTimeSeriesImages(paths) TSV.exportMapsToImages() if SHOW_GUI: QGIS_APP.exec_() def test_TimeSeriesViewerMassiveSources(self): from eotimeseriesviewer.main import TimeSeriesViewer TSV = TimeSeriesViewer() TSV.show() files = TestObjects.createArtificialTimeSeries(100) TSV.addTimeSeriesImages(files) if SHOW_GUI: QGIS_APP.exec_() def test_TimeSeriesViewerNoSource(self): from eotimeseriesviewer.main import TimeSeriesViewer TSV = TimeSeriesViewer() TSV.show() self.assertIsInstance(TSV, TimeSeriesViewer) if SHOW_GUI: QGIS_APP.exec_() if __name__ == '__main__': unittest.main()