Add smoke test for frontend commands

This ensures that at least --help works for all the commands,
preventing regressions like that in f3323a35d5.
This commit is contained in:
David Nadlinger 2019-01-12 13:49:32 +00:00
parent 425cd7851e
commit 24b1b9a480

View File

@ -0,0 +1,35 @@
"""Generic tests for frontend commands."""
import subprocess
import sys
import unittest
class TestFrontends(unittest.TestCase):
def test_help(self):
"""Test --help as a simple smoke test against catastrophic breakage."""
commands = {
"aqctl": [
"corelog", "korad_ka3005p", "lda", "novatech409b",
"thorlabs_tcube"
],
"artiq": [
"client", "compile", "coreanalyzer", "coremgmt", "ctlmgr",
"devtool", "flash", "influxdb", "master", "mkfs", "route",
"rpctool", "rtiomon", "run", "session"
]
}
# Skip tests for GUI programs on headless CI environments.
try:
from PyQt5 import QtGui, QtWidgets
commands["artiq"] += ["browser", "dashboard"]
except ImportError:
pass
for module in (prefix + "_" + name
for prefix, names in commands.items()
for name in names):
subprocess.check_call(
[sys.executable, "-m", "artiq.frontend." + module, "--help"],
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT)