Fixing tests and LaTeX
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
e2d259f866
commit
42d5add810
6 changed files with 35 additions and 30 deletions
|
@ -17,9 +17,9 @@
|
|||
"""
|
||||
|
||||
from os import getcwd, chdir, environ, path
|
||||
from platform import release as os_release
|
||||
from platform import system as os_name, release as OS_RELEASE
|
||||
from sys import path as sys_path
|
||||
from sys import platform, argv, exit
|
||||
from sys import argv, exit
|
||||
from tempfile import TemporaryDirectory
|
||||
from time import time
|
||||
|
||||
|
@ -49,6 +49,18 @@ from LogarithmPlotter.util.helper import Helper
|
|||
from LogarithmPlotter.util.latex import Latex
|
||||
from LogarithmPlotter.util.js import PyJSValue
|
||||
|
||||
OS_NAME = os_name()
|
||||
|
||||
|
||||
CACHE_PATH = {
|
||||
"Linux": path.join(environ["XDG_CONFIG_HOME"], "LogarithmPlotter")
|
||||
if "XDG_CONFIG_HOME" in environ else
|
||||
path.join(path.expanduser("~"), ".cache", "LogarithmPlotter"),
|
||||
"Windows": path.join(path.expandvars('%APPDATA%'), "LogarithmPlotter", "cache"),
|
||||
"Darwin": path.join(path.expanduser("~"), "Library", "Caches", "LogarithmPlotter"),
|
||||
}[OS_NAME]
|
||||
|
||||
|
||||
LINUX_THEMES = { # See https://specifications.freedesktop.org/menu-spec/latest/onlyshowin-registry.html
|
||||
"COSMIC": "Basic",
|
||||
"GNOME": "Basic",
|
||||
|
@ -82,11 +94,10 @@ def get_linux_theme() -> str:
|
|||
|
||||
def get_platform_qt_style(os) -> str:
|
||||
return {
|
||||
"linux": get_linux_theme(),
|
||||
"freebsd": get_linux_theme(),
|
||||
"win32": "Universal" if os_release() in ["10", "11", "12", "13", "14"] else "Windows",
|
||||
"cygwin": "Fusion",
|
||||
"darwin": "macOS"
|
||||
"Linux": get_linux_theme(),
|
||||
"Windows": "Universal" if OS_RELEASE() in ["10", "11", "12", "13", "14"] else "Windows",
|
||||
"Darwin": "macOS",
|
||||
"Android": "Material"
|
||||
}[os]
|
||||
|
||||
|
||||
|
@ -147,7 +158,7 @@ def run():
|
|||
config.init()
|
||||
|
||||
if not 'QT_QUICK_CONTROLS_STYLE' in environ:
|
||||
QQuickStyle.setStyle(get_platform_qt_style(platform))
|
||||
QQuickStyle.setStyle(get_platform_qt_style(OS_NAME))
|
||||
|
||||
dep_time = time()
|
||||
print("Loaded dependencies in " + str((dep_time - start_time) * 1000) + "ms.")
|
||||
|
@ -159,12 +170,12 @@ def run():
|
|||
|
||||
# Installing macOS file handler.
|
||||
macos_file_open_handler = None
|
||||
if platform == "darwin":
|
||||
if OS_NAME == "Darwin":
|
||||
macos_file_open_handler = native.MacOSFileOpenHandler()
|
||||
app.installEventFilter(macos_file_open_handler)
|
||||
|
||||
helper = Helper(pwd, tmpfile)
|
||||
latex = Latex()
|
||||
latex = Latex(CACHE_PATH)
|
||||
engine, js_globals = create_engine(helper, latex, dep_time)
|
||||
|
||||
if len(engine.rootObjects()) == 0: # No root objects loaded
|
||||
|
@ -177,7 +188,7 @@ def run():
|
|||
js_globals.Modules.IO.loadDiagram(argv[-1])
|
||||
chdir(path.dirname(path.realpath(__file__)))
|
||||
|
||||
if platform == "darwin":
|
||||
if OS_NAME == "Darwin":
|
||||
macos_file_open_handler.init_io(js_globals.Modules.IO)
|
||||
|
||||
# Check for LaTeX installation if LaTeX support is enabled
|
||||
|
|
|
@ -23,19 +23,10 @@ from PySide6.QtWidgets import QMessageBox
|
|||
from os import path, remove, environ, makedirs
|
||||
from string import Template
|
||||
from subprocess import Popen, TimeoutExpired, PIPE
|
||||
from platform import system
|
||||
from hashlib import sha512
|
||||
from shutil import which
|
||||
from sys import argv
|
||||
|
||||
CACHE_PATH = {
|
||||
"Linux": path.join(environ["XDG_CONFIG_HOME"], "LogarithmPlotter")
|
||||
if "XDG_CONFIG_HOME" in environ else
|
||||
path.join(path.expanduser("~"), ".cache", "LogarithmPlotter"),
|
||||
"Windows": path.join(path.expandvars('%APPDATA%'), "LogarithmPlotter", "cache"),
|
||||
"Darwin": path.join(path.expanduser("~"), "Library", "Caches", "LogarithmPlotter"),
|
||||
}[system()]
|
||||
|
||||
|
||||
"""
|
||||
Searches for a valid Latex and DVIPNG (http://savannah.nongnu.org/projects/dvipng/)
|
||||
|
@ -85,9 +76,9 @@ class Latex(QObject):
|
|||
dvipng to be installed on the system.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, cache_path):
|
||||
QObject.__init__(self)
|
||||
self.tempdir = path.join(CACHE_PATH, "latex")
|
||||
self.tempdir = path.join(cache_path, "latex")
|
||||
makedirs(self.tempdir, exist_ok=True)
|
||||
|
||||
@Property(bool)
|
||||
|
|
|
@ -49,3 +49,7 @@ class MacOSFileOpenHandler(QObject):
|
|||
else:
|
||||
# standard event processing
|
||||
return QObject.eventFilter(self, obj, event)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ latex.SHOW_GUI_MESSAGES = False
|
|||
@pytest.fixture()
|
||||
def latex_obj():
|
||||
directory = TemporaryDirectory()
|
||||
obj = latex.Latex(directory)
|
||||
obj = latex.Latex(directory.name)
|
||||
if not obj.checkLatexInstallation():
|
||||
raise Exception("Cannot run LaTeX tests without a proper LaTeX installation. Make sure to install a LaTeX distribution, DVIPNG, and the calligra package, and run the tests again.")
|
||||
yield obj
|
||||
|
|
|
@ -39,11 +39,10 @@ THEMES = [
|
|||
]
|
||||
|
||||
OS_PLATFORMS = [
|
||||
"linux",
|
||||
"freebsd",
|
||||
"win32",
|
||||
"cygwin",
|
||||
"darwin"
|
||||
"Linux",
|
||||
"Windows",
|
||||
"Darwin",
|
||||
"Android"
|
||||
]
|
||||
|
||||
@pytest.fixture()
|
||||
|
@ -91,7 +90,7 @@ class TestMain:
|
|||
# Engine
|
||||
tmpfile, tempdir = temporary
|
||||
helper = Helper(".", tmpfile)
|
||||
latex = Latex(tempdir)
|
||||
latex = Latex(tempdir.name)
|
||||
engine, js_globals = create_engine(helper, latex, 0)
|
||||
assert len(engine.rootObjects()) > 0 # QML File loaded.
|
||||
assert type(engine.rootContext().contextProperty("TestBuild")) is bool
|
||||
|
|
|
@ -60,7 +60,7 @@ def test_update(qtbot):
|
|||
|
||||
def test_update_checker(qtbot):
|
||||
update_info = check_for_updates('0.6.0', MockWindow())
|
||||
assert QThreadPool.globalInstance().activeThreadCount() == 1
|
||||
assert QThreadPool.globalInstance().activeThreadCount() >= 1
|
||||
qtbot.waitSignal(update_info.got_update_info, timeout=10000)
|
||||
argv.append("--no-check-for-updates")
|
||||
update_info = check_for_updates('0.6.0', MockWindow())
|
||||
|
|
Loading…
Reference in a new issue