mirror of
https://github.com/Athemis/PyDSF.git
synced 2025-04-06 23:16:03 +00:00
38 lines
1,009 B
Python
38 lines
1,009 B
Python
import os, sys, subprocess, tempfile
|
|
import pyqtgraph as pg
|
|
|
|
|
|
code = """
|
|
import sys
|
|
sys.path.insert(0, '{path}')
|
|
import pyqtgraph as pg
|
|
app = pg.mkQApp()
|
|
w = pg.{classname}({args})
|
|
"""
|
|
|
|
|
|
def test_exit_crash():
|
|
# For each Widget subclass, run a simple python script that creates an
|
|
# instance and then shuts down. The intent is to check for segmentation
|
|
# faults when each script exits.
|
|
tmp = tempfile.mktemp(".py")
|
|
path = os.path.dirname(pg.__file__)
|
|
|
|
initArgs = {
|
|
'CheckTable': "[]",
|
|
'ProgressDialog': '"msg"',
|
|
'VerticalLabel': '"msg"',
|
|
}
|
|
|
|
for name in dir(pg):
|
|
obj = getattr(pg, name)
|
|
if not isinstance(obj, type) or not issubclass(obj, pg.QtGui.QWidget):
|
|
continue
|
|
|
|
print name
|
|
argstr = initArgs.get(name, "")
|
|
open(tmp, 'w').write(code.format(path=path, classname=name, args=argstr))
|
|
proc = subprocess.Popen([sys.executable, tmp])
|
|
assert proc.wait() == 0
|
|
|
|
os.remove(tmp)
|