Skip to content
Snippets Groups Projects
test_main.py 4.66 KiB
Newer Older
Benjamin Jakimow's avatar
Benjamin Jakimow committed
# -*- 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

Benjamin Jakimow's avatar
Benjamin Jakimow committed

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 eotimeseriesviewer
eotimeseriesviewer.initResources()
from eotimeseriesviewer.mapcanvas import *
from eotimeseriesviewer.tests import TestObjects
Benjamin Jakimow's avatar
Benjamin Jakimow committed

QGIS_APP = initQgisApplication()
SHOW_GUI = True and os.environ.get('CI') is None
Benjamin Jakimow's avatar
Benjamin Jakimow committed

Benjamin Jakimow's avatar
Benjamin Jakimow committed
    """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)

        from eotimeseriesviewer.main import TimeSeriesViewer
Benjamin Jakimow's avatar
Benjamin Jakimow committed
        TSV.loadExampleTimeSeries()
        tsd = TSV.timeSeries()[-1]
        TSV.showTimeSeriesDatum(tsd)
Benjamin Jakimow's avatar
Benjamin Jakimow committed
        if SHOW_GUI:
            QGIS_APP.exec_()
Benjamin Jakimow's avatar
Benjamin Jakimow committed
    def test_TimeSeriesViewerMultiSource(self):

        from eotimeseriesviewer.main import TimeSeriesViewer
Benjamin Jakimow's avatar
Benjamin Jakimow committed

        TSV = TimeSeriesViewer()
        TSV.show()
        paths = TestObjects.createMultiSourceTimeSeries()
        TSV.addTimeSeriesImages(paths)
    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_()

Benjamin Jakimow's avatar
Benjamin Jakimow committed

        from eotimeseriesviewer.main import TimeSeriesViewer
        self.assertIsInstance(TSV, TimeSeriesViewer)
        if SHOW_GUI:
            QGIS_APP.exec_()


Benjamin Jakimow's avatar
Benjamin Jakimow committed
if __name__ == '__main__':
    unittest.main()