aboutsummaryrefslogtreecommitdiff
path: root/libs/plugin_python/tests/python/test_path_wrappers.py
blob: 5a0d70192cf58e68b475e09eda996eaaff2e6edd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import sys
from pathlib import Path

import pytest
from PyQt6.QtCore import QDir, QFileInfo

import mobase


def test_filepath_wrappers():
    # TBC that this works everywhere
    version = ".".join(map(str, sys.version_info[:3]))

    # from string, ok
    assert mobase.getProductVersion(sys.executable) == version

    # from path, ok
    assert mobase.getProductVersion(Path(sys.executable)) == version

    # from QDir, ko
    with pytest.raises(TypeError):
        mobase.getProductVersion(QDir(sys.executable))  # pyright: ignore[reportArgumentType]


def test_executableinfo():
    info = mobase.ExecutableInfo("exe", QFileInfo(sys.executable))
    assert info.binary() == QFileInfo(sys.executable)

    info = mobase.ExecutableInfo("exe", sys.executable)
    assert info.binary() == QFileInfo(sys.executable)

    info = mobase.ExecutableInfo("exe", Path(sys.executable))
    assert info.binary() == QFileInfo(sys.executable)

    info.withWorkingDirectory(Path(__file__).parent)
    assert info.workingDirectory() == QFileInfo(__file__).dir()

    info.withWorkingDirectory(".")
    assert info.workingDirectory() == QDir(".")

    info.withWorkingDirectory(Path("."))
    assert info.workingDirectory() == QDir(".")

    info.withWorkingDirectory(".")
    assert info.workingDirectory() == QDir(".")