monkey patch for QSettings test

This commit is contained in:
Christopher T. Johnson
2024-04-02 10:59:25 -04:00
parent 55dbac5102
commit ea999e03f0

View File

@@ -1,5 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import faulthandler
import os import os
import signal
import sys import sys
from typing import cast from typing import cast
@@ -14,6 +16,13 @@ from lib.utils import query_error
from lib.words import Definition from lib.words import Definition
def monkeyClose(self, event):
settings = QSettings("Troglodite", "esl_reader")
settings.setValue("geometry", self.saveGeometry())
super(DefinitionArea, self).closeEvent(event)
return
def main() -> int: def main() -> int:
db = QSqlDatabase() db = QSqlDatabase()
db = db.addDatabase("QSQLITE") db = db.addDatabase("QSQLITE")
@@ -24,17 +33,19 @@ def main() -> int:
# #
# Set Default settings # Set Default settings
# #
settings = QSettings('Troglodite', 'esl_reader') settings = QSettings("Troglodite", "esl_reader")
settings.beginGroup('font') settings.beginGroup("font")
if not settings.contains('display/url'): if not settings.contains("display/url"):
settings.setValue('display/url', ':/fonts/opendyslexic/OpenDyslexic-Regular.otf') settings.setValue(
if not settings.contains('display/name'): "display/url", ":/fonts/opendyslexic/OpenDyslexic-Regular.otf"
settings.setValue('display/name', 'OpenDyslexic') )
if not settings.contains('phonic/name'): if not settings.contains("display/name"):
settings.setValue('phonic/name', 'Gentium') settings.setValue("display/name", "OpenDyslexic")
if not settings.contains("phonic/name"):
settings.setValue("phonic/name", "Gentium")
settings.endGroup() settings.endGroup()
if not settings.contains('keys/mw-api'): if not settings.contains("keys/mw-api"):
settings.setValue('keys/mw-api','51d9df34-ee13-489e-8656-478c215e846c') settings.setValue("keys/mw-api", "51d9df34-ee13-489e-8656-478c215e846c")
# #
# Setup resources # Setup resources
# #
@@ -42,10 +53,10 @@ def main() -> int:
os.path.join(os.path.dirname(__file__), "ui/resources.rcc"), "/" os.path.join(os.path.dirname(__file__), "ui/resources.rcc"), "/"
): ):
raise Exception("Unable to register resources.rcc") raise Exception("Unable to register resources.rcc")
settings.beginGroup('font') settings.beginGroup("font")
for name in settings.childGroups(): for name in settings.childGroups():
if settings.contains(f'{name}/url'): if settings.contains(f"{name}/url"):
QFontDatabase.addApplicationFont(settings.value(f'{name}/url')) QFontDatabase.addApplicationFont(settings.value(f"{name}/url"))
settings.endGroup() settings.endGroup()
query = QSqlQuery() query = QSqlQuery()
if not query.exec( if not query.exec(
@@ -55,10 +66,13 @@ def main() -> int:
): ):
query_error(query) query_error(query)
word = Word("boat") word = Word("cowbell")
snd = SoundOff() snd = SoundOff()
DefinitionArea.closeEvent = monkeyClose
widget = DefinitionArea(word) # xnoqa: F841 widget = DefinitionArea(word) # xnoqa: F841
d = cast(Definition,widget.widget()) settings = QSettings("Troglodite", "esl_reader")
widget.restoreGeometry(settings.value("geometry"))
d = cast(Definition, widget.widget())
assert d is not None assert d is not None
d.pronounce.connect(snd.playSound) d.pronounce.connect(snd.playSound)
widget.show() widget.show()
@@ -66,4 +80,5 @@ def main() -> int:
if __name__ == "__main__": if __name__ == "__main__":
faulthandler.register(signal.Signals.SIGUSR1)
sys.exit(main()) sys.exit(main())