| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- """
- """
- import logging
- import os
- import platform
- from qgis.core import QgsProject
- import subprocess
- import unittest
- from PyQt5 import QtWidgets
- from PyQt5 import uic
- from PyQt5.QtCore import Qt
- from PyQt5.QtGui import QIcon, QPixmap
- from PyQt5.QtWidgets import QTextBrowser, QApplication
- import coverage
- from core.constants import MAIN, LOGDIR, RSCDIR, CONTACT, TESTDIR, COVERAGE_DIR
- from path import Path
- logger = logging.getLogger("mncheck")
- Ui_Contact, _ = uic.loadUiType(MAIN / 'ui'/ 'dlg_contact.ui')
- class DlgContact(QtWidgets.QDialog):
- def __init__(self, parent=None):
- super().__init__(parent)
-
- self.createWidgets()
- def createWidgets(self):
- """ set up the interface """
- self.ui = Ui_Contact()
- self.ui.setupUi(self)
- self.setWindowIcon(QIcon(MAIN / "icon.png"))
- self.ui.lbl_mn_logo.setPixmap(QPixmap(RSCDIR / "mn_logo_mini.png"))
- self.ui.lbl_warning_logo.setPixmap(QPixmap(RSCDIR / "warning_16.png"))
-
- self.ui.lbl_mail.setText(f"<a href=\"mailto:{CONTACT}\">{CONTACT}</a>")
- self.ui.lbl_mail.setTextFormat(Qt.RichText)
- self.ui.lbl_mail.setTextInteractionFlags(Qt.TextBrowserInteraction)
- self.ui.lbl_mail.setOpenExternalLinks(True)
-
- self.ui.btn_open_log_dir.clicked.connect(self.open_log_dir)
-
- self.ui.btn_test.setVisible(Path(MAIN / "test").isdir())
- self.ui.btn_test.clicked.connect(self.run_tests)
-
- self._chk_dlg = QTextBrowser()
- self._chk_dlg.setMinimumSize(500, 400)
- self._chk_dlg.setWindowTitle("Checkup: Résultats")
-
- def open_log_dir(self):
- path = Path(LOGDIR).abspath()
- if platform.system() == "Windows":
- os.startfile(path)
- else:
- subprocess.Popen(["open", path])
- def run_tests(self):
-
- cov = coverage.Coverage()
- cov.start()
-
- _initial_project = QgsProject.instance().absoluteFilePath()
- if _initial_project:
- QgsProject.instance().write(_initial_project)
-
- QApplication.setOverrideCursor(Qt.WaitCursor)
-
- loader = unittest.TestLoader()
- tests = loader.discover(Path(TESTDIR).abspath())
-
- with open(LOGDIR / "checkup.txt", "w+") as f:
- runner = unittest.TextTestRunner(stream=f)
- runner.run(tests)
- cov.stop()
- cov.save()
- COVERAGE_DIR.mkdir_p()
- cov.html_report(directory=COVERAGE_DIR)
- if _initial_project:
- QgsProject.instance().clear()
- QgsProject.instance().read(_initial_project)
- QApplication.restoreOverrideCursor()
- with open(LOGDIR / "checkup.txt", "r") as f:
- self._chk_dlg.setText(f.read())
- self._chk_dlg.show()
-
-
|