aboutsummaryrefslogtreecommitdiff
path: root/src/command.py
diff options
context:
space:
mode:
authortassaron2022-04-22 17:10:35 -0400
committertassaron2022-04-22 17:10:35 -0400
commita42ea1cd69fcf3f6c1b2ff79871cd00f24b95118 (patch)
tree781fc61b053ea33bb7217ba607359b7bf120a337 /src/command.py
parent05d2ebc3c69f5a876d602004f69202c5ba8b09f7 (diff)
add commandline option for tests. add first tests
Diffstat (limited to 'src/command.py')
-rw-r--r--src/command.py39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/command.py b/src/command.py
index cd3c6c3..49026c6 100644
--- a/src/command.py
+++ b/src/command.py
@@ -9,21 +9,33 @@ import os
import sys
import time
import signal
+import logging
-from core import Core
+from . import core
+
+
+log = logging.getLogger('AVP.Commandline')
class Command(QtCore.QObject):
+ """
+ This replaces the GUI MainWindow when in commandline mode.
+ """
createVideo = QtCore.pyqtSignal()
def __init__(self):
QtCore.QObject.__init__(self)
- self.core = Core()
- Core.mode = 'commandline'
+ self.core = core.Core()
+ core.Core.mode = 'commandline'
self.dataDir = self.core.dataDir
self.canceled = False
+ self.settings = core.Core.settings
+
+ # ctrl-c stops the export thread
+ signal.signal(signal.SIGINT, self.stopVideo)
+ def parseArgs(self):
self.parser = argparse.ArgumentParser(
description='Create a visualization for an audio file',
epilog='EXAMPLE COMMAND: main.py myvideotemplate.avp '
@@ -32,6 +44,10 @@ class Command(QtCore.QObject):
'-c 1 video "preset=My Logo" -c 2 vis layout=classic'
)
self.parser.add_argument(
+ '-t', '--test', action='store_true',
+ help='run tests and generate a logfile to report a bug'
+ )
+ self.parser.add_argument(
'-i', '--input', metavar='SOUND',
help='input audio file'
)
@@ -55,7 +71,10 @@ class Command(QtCore.QObject):
nargs='*', action='append')
self.args = self.parser.parse_args()
- self.settings = Core.settings
+
+ if self.args.test:
+ self.runTests()
+ quit(0)
if self.args.projpath:
projPath = self.args.projpath
@@ -92,9 +111,6 @@ class Command(QtCore.QObject):
for arg in args:
self.core.selectedComponents[i].command(arg)
- # ctrl-c stops the export thread
- signal.signal(signal.SIGINT, self.stopVideo)
-
if self.args.export and self.args.projpath:
errcode, data = self.core.parseAvFile(projPath)
for key, value in data['WindowFields']:
@@ -188,3 +204,12 @@ class Command(QtCore.QObject):
return
return None
+
+ def runTests(self):
+ core.FILE_LOGLVL = logging.DEBUG
+ from . import tests
+ test_report = os.path.join(core.Core.logDir, "test_report.log")
+ tests.run(test_report)
+ with open(test_report, "r") as f:
+ output = f.readlines()
+ print("".join(output))