manuskript/manuskript/tests/conftest.py
2021-02-21 23:45:34 +01:00

73 lines
1.7 KiB
Python

#!/usr/bin/env python
# --!-- coding: utf8 --!--
"""Fixtures."""
import pytest
@pytest.fixture
def MW():
"""
Returns the mainWindow
"""
from manuskript import functions as F
MW = F.mainWindow()
assert MW != None
assert MW == F.MW
return MW
@pytest.fixture
def MWNoProject(MW):
"""
Take the MainWindow and close andy possibly open project.
"""
MW.closeProject()
assert MW.currentProject == None
return MW
@pytest.fixture
def MWEmptyProject(MW):
"""
Creates a MainWindow and load an empty project.
"""
import tempfile
tf = tempfile.NamedTemporaryFile(suffix=".msk")
MW.closeProject()
assert MW.currentProject == None
MW.welcome.createFile(tf.name, overwrite=True)
assert MW.currentProject != None
return MW
# If using with: @pytest.fixture(scope='session', autouse=True)
# yield MW
# # Properly destructed after. Otherwise: seg fault.
# MW.deleteLater()
@pytest.fixture
def MWSampleProject(MW):
"""
Creates a MainWindow and load a copy of the Acts sample project.
"""
from manuskript import functions as F
import os
# Get the path of the first sample project. We assume it is here.
spDir = F.appPath("sample-projects")
lst = os.listdir(spDir)
# We assume it's saved in folder, so there is a `name.msk` file and a
# `name` folder.
src = [f for f in lst if f[-4:] == ".msk" and f[:-4] in lst][0]
src = os.path.join(spDir, src)
# Copy to a temp file
import tempfile
tf = tempfile.NamedTemporaryFile(suffix=".msk")
import shutil
shutil.copyfile(src, tf.name)
shutil.copytree(src[:-4], tf.name[:-4])
MW.loadProject(tf.name)
assert MW.currentProject != None
return MW