forked from bitcoinafterlife/bal-electrum-plugin
103 lines
2.6 KiB
Python
103 lines
2.6 KiB
Python
"""
|
|
Tests for ``bal.gui.qt.common``.
|
|
|
|
Covers shown_cv, CheckAliveError, add_widget, log_error, export_meta_gui.
|
|
|
|
Run:
|
|
QT_QPA_PLATFORM=offscreen python3 tests/test_gui_common.py
|
|
"""
|
|
|
|
import sys
|
|
sys.path.insert(0, __file__.rsplit("/", 2)[0])
|
|
|
|
from PyQt6.QtWidgets import QApplication, QGridLayout, QLabel, QWidget
|
|
|
|
# Import the module itself, not via "from .common import *"
|
|
import bal.gui.qt.common as C
|
|
|
|
_app = QApplication.instance() or QApplication(sys.argv)
|
|
|
|
|
|
# ------------------------------------------------------------------ #
|
|
# shown_cv
|
|
# ------------------------------------------------------------------ #
|
|
|
|
def test_shown_cv_default():
|
|
cv = C.shown_cv(True)
|
|
assert cv.get() is True
|
|
|
|
|
|
def test_shown_cv_set():
|
|
cv = C.shown_cv(True)
|
|
cv.set(False)
|
|
assert cv.get() is False
|
|
|
|
|
|
def test_shown_cv_roundtrip():
|
|
cv = C.shown_cv(False)
|
|
assert cv.get() is False
|
|
cv.set(True)
|
|
assert cv.get() is True
|
|
cv.set(True)
|
|
assert cv.get() is True
|
|
|
|
|
|
# ------------------------------------------------------------------ #
|
|
# CheckAliveError
|
|
# ------------------------------------------------------------------ #
|
|
|
|
def test_check_alive_error_default():
|
|
err = C.CheckAliveError(1000000)
|
|
assert err.timestamp_to_check == 1000000
|
|
|
|
|
|
def test_check_alive_error_str():
|
|
err = C.CheckAliveError(1000000)
|
|
s = str(err)
|
|
assert "Check alive expired" in s
|
|
assert "1970" in s
|
|
|
|
|
|
def test_check_alive_error_subclass():
|
|
assert issubclass(C.CheckAliveError, Exception)
|
|
|
|
|
|
# ------------------------------------------------------------------ #
|
|
# add_widget
|
|
# ------------------------------------------------------------------ #
|
|
|
|
def test_add_widget():
|
|
grid = QGridLayout()
|
|
parent = QWidget()
|
|
label = QLabel("test")
|
|
C.add_widget(grid, "Label", label, 0, "Help text")
|
|
assert grid.count() == 3 # label + widget + help button
|
|
|
|
|
|
def test_add_widget_multiple_rows():
|
|
grid = QGridLayout()
|
|
parent = QWidget()
|
|
C.add_widget(grid, "A", QLabel("a"), 0, "help_a")
|
|
C.add_widget(grid, "B", QLabel("b"), 1, "help_b")
|
|
assert grid.count() == 6
|
|
|
|
|
|
# ------------------------------------------------------------------ #
|
|
# log_error
|
|
# ------------------------------------------------------------------ #
|
|
|
|
def test_log_error_no_window():
|
|
C.log_error((Exception, Exception("test"), None))
|
|
|
|
|
|
# ------------------------------------------------------------------ #
|
|
# Main
|
|
# ------------------------------------------------------------------ #
|
|
|
|
if __name__ == "__main__":
|
|
for name in sorted(dir()):
|
|
if name.startswith("test_"):
|
|
globals()[name]()
|
|
print(f" [OK] {name}")
|
|
print("[OK] All common tests passed")
|