vorta/tests/test_misc.py

45 lines
1.6 KiB
Python

import os
import sys
from pathlib import Path
import pytest
from PyQt5 import QtCore
from PyQt5.QtWidgets import QCheckBox, QFormLayout
def test_autostart(qapp, qtbot):
'''Check if file exists only on Linux, otherwise just check it doesn't crash'''
main = qapp.main_window
main.tabWidget.setCurrentIndex(4)
tab = main.miscTab
def click_autostart():
for x in range(0, tab.checkboxLayout.count()):
item = tab.checkboxLayout.itemAt(x, QFormLayout.ItemRole.FieldRole)
if not item:
continue
checkbox = item.widget()
checkbox.__class__ = QCheckBox
if checkbox.text().startswith("Automatically"):
# Have to use pos to click checkbox correctly
# https://stackoverflow.com/questions/19418125/pysides-qtest-not-checking-box/24070484#24070484
qtbot.mouseClick(checkbox, QtCore.Qt.LeftButton, pos=QtCore.QPoint(2, int(checkbox.height() / 2)))
break
click_autostart()
if sys.platform == 'linux':
autostart_path = (
Path(os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~") + '/.config') + "/autostart")
/ "vorta.desktop"
)
qtbot.waitUntil(lambda: autostart_path.exists(), **pytest._wait_defaults)
with open(autostart_path) as desktop_file:
desktop_file_text = desktop_file.read()
assert desktop_file_text.startswith("[Desktop Entry]")
click_autostart()
if sys.platform == 'linux':
assert not os.path.exists(autostart_path)