🐛 | Fix SonarQube issues
All checks were successful
SonarQube Code Quality Scan / SonarQube Scan (push) Successful in 1m42s

- Extract duplicated string literals into constants (S1192)
- Replace dict() with {} literal (S7498)
- Remove duplicate test_zero_ms (S4144)
- Remove/rename unused variables (S1481)
- Replace constant assert True with comment (S5914)
- Mark stub empty methods as intentional (S1186)
- Review 2 security hotspots as safe (S5443)
This commit is contained in:
2026-06-03 19:14:22 +03:00
parent 2870f790bd
commit 8597d03a1e
5 changed files with 70 additions and 65 deletions

View File

@@ -27,13 +27,18 @@ from unittest import mock
# ═══════════════════════════════════════════════════════════════════════════
class _StubQObject:
"""Minimal replacement for PySide6.QtCore.QObject."""
"""Minimal replacement for PySide6.QtCore.QObject.
Used as a base class so that ``class Foo(QObject)`` produces a real
class with the methods defined in its body, not a MagicMock.
"""
pass
class _StubQThread:
"""Minimal replacement for PySide6.QtCore.QThread."""
def start(self) -> None:
"""Stub — no-op; real QThread would start the event loop."""
pass
def quit(self) -> None:
pass
@@ -88,56 +93,61 @@ def _install_stubs() -> None:
m.__name__ = name
return m
# ── Module-name constants (extracted to avoid S1192 duplicates) ──
MOD_QTCORE = "PySide6.QtCore"
MOD_QTGUI = "PySide6.QtGui"
MOD_QTMULTIMEDIA = "PySide6.QtMultimedia"
MOD_QTNETWORK = "PySide6.QtNetwork"
MOD_QTWIDGETS = "PySide6.QtWidgets"
_PYSIDE_STUBS = {
("PySide6", "_module"): _stub("PySide6"),
# ── QtCore ──────────────────────────────────────────────────
("PySide6.QtCore", "QObject"): _StubQObject,
("PySide6.QtCore", "QThread"): _StubQThread,
("PySide6.QtCore", "Signal"): _stub_signal,
("PySide6.QtCore", "Slot"): _stub_slot,
("PySide6.QtCore", "QUrl"): _stub("QUrl"),
("PySide6.QtCore", "Qt"): _stub("Qt"),
("PySide6.QtCore", "QTimer"): _stub("QTimer"),
("PySide6.QtCore", "QRectF"): _stub("QRectF"),
("PySide6.QtCore", "QPropertyAnimation"): _stub("QPropertyAnimation"),
("PySide6.QtCore", "QEasingCurve"): _stub("QEasingCurve"),
("PySide6.QtCore", "QLoggingCategory"): _stub("QLoggingCategory"),
("PySide6.QtCore", "QEvent"): _stub("QEvent"),
(MOD_QTCORE, "QObject"): _StubQObject,
(MOD_QTCORE, "QThread"): _StubQThread,
(MOD_QTCORE, "Signal"): _stub_signal,
(MOD_QTCORE, "Slot"): _stub_slot,
(MOD_QTCORE, "QUrl"): _stub("QUrl"),
(MOD_QTCORE, "Qt"): _stub("Qt"),
(MOD_QTCORE, "QTimer"): _stub("QTimer"),
(MOD_QTCORE, "QRectF"): _stub("QRectF"),
(MOD_QTCORE, "QPropertyAnimation"): _stub("QPropertyAnimation"),
(MOD_QTCORE, "QEasingCurve"): _stub("QEasingCurve"),
(MOD_QTCORE, "QLoggingCategory"): _stub("QLoggingCategory"),
(MOD_QTCORE, "QEvent"): _stub("QEvent"),
# ── QtGui ───────────────────────────────────────────────────
("PySide6.QtGui", "QFont"): _stub("QFont"),
("PySide6.QtGui", "QPixmap"): _stub("QPixmap"),
("PySide6.QtGui", "QPainter"): _stub("QPainter"),
("PySide6.QtGui", "QColor"): _stub("QColor"),
("PySide6.QtGui", "QBrush"): _stub("QBrush"),
(MOD_QTGUI, "QFont"): _stub("QFont"),
(MOD_QTGUI, "QPixmap"): _stub("QPixmap"),
(MOD_QTGUI, "QPainter"): _stub("QPainter"),
(MOD_QTGUI, "QColor"): _stub("QColor"),
(MOD_QTGUI, "QBrush"): _stub("QBrush"),
# ── QtMultimedia ────────────────────────────────────────────
("PySide6.QtMultimedia", "QMediaPlayer"): _stub("QMediaPlayer"),
("PySide6.QtMultimedia", "QAudioOutput"): _stub("QAudioOutput"),
("PySide6.QtMultimedia", "QAudioBufferOutput"): _stub("QAudioBufferOutput"),
(MOD_QTMULTIMEDIA, "QMediaPlayer"): _stub("QMediaPlayer"),
(MOD_QTMULTIMEDIA, "QAudioOutput"): _stub("QAudioOutput"),
(MOD_QTMULTIMEDIA, "QAudioBufferOutput"): _stub("QAudioBufferOutput"),
# ── QtNetwork ───────────────────────────────────────────────
("PySide6.QtNetwork", "QNetworkAccessManager"): _stub("QNetworkAccessManager"),
("PySide6.QtNetwork", "QNetworkRequest"): _stub("QNetworkRequest"),
("PySide6.QtNetwork", "QNetworkReply"): _stub("QNetworkReply"),
(MOD_QTNETWORK, "QNetworkAccessManager"): _stub("QNetworkAccessManager"),
(MOD_QTNETWORK, "QNetworkRequest"): _stub("QNetworkRequest"),
(MOD_QTNETWORK, "QNetworkReply"): _stub("QNetworkReply"),
# ── QtWidgets ───────────────────────────────────────────────
("PySide6.QtWidgets", "QApplication"): _stub("QApplication"),
("PySide6.QtWidgets", "QCheckBox"): _stub("QCheckBox"),
("PySide6.QtWidgets", "QDialog"): _stub("QDialog"),
("PySide6.QtWidgets", "QHBoxLayout"): _stub("QHBoxLayout"),
("PySide6.QtWidgets", "QLabel"): _stub("QLabel"),
("PySide6.QtWidgets", "QLineEdit"): _stub("QLineEdit"),
("PySide6.QtWidgets", "QListWidget"): _stub("QListWidget"),
("PySide6.QtWidgets", "QListWidgetItem"): _stub("QListWidgetItem"),
("PySide6.QtWidgets", "QMainWindow"): _stub("QMainWindow"),
("PySide6.QtWidgets", "QMenu"): _stub("QMenu"),
("PySide6.QtWidgets", "QPushButton"): _stub("QPushButton"),
("PySide6.QtWidgets", "QScrollArea"): _stub("QScrollArea"),
("PySide6.QtWidgets", "QSlider"): _stub("QSlider"),
("PySide6.QtWidgets", "QStackedWidget"): _stub("QStackedWidget"),
("PySide6.QtWidgets", "QVBoxLayout"): _stub("QVBoxLayout"),
("PySide6.QtWidgets", "QWidget"): _stub("QWidget"),
("PySide6.QtWidgets", "QFrame"): _stub("QFrame"),
("PySide6.QtWidgets", "QToolButton"): _stub("QToolButton"),
("PySide6.QtWidgets", "QButtonGroup"): _stub("QButtonGroup"),
("PySide6.QtWidgets", "QSizePolicy"): _stub("QSizePolicy"),
(MOD_QTWIDGETS, "QApplication"): _stub("QApplication"),
(MOD_QTWIDGETS, "QCheckBox"): _stub("QCheckBox"),
(MOD_QTWIDGETS, "QDialog"): _stub("QDialog"),
(MOD_QTWIDGETS, "QHBoxLayout"): _stub("QHBoxLayout"),
(MOD_QTWIDGETS, "QLabel"): _stub("QLabel"),
(MOD_QTWIDGETS, "QLineEdit"): _stub("QLineEdit"),
(MOD_QTWIDGETS, "QListWidget"): _stub("QListWidget"),
(MOD_QTWIDGETS, "QListWidgetItem"): _stub("QListWidgetItem"),
(MOD_QTWIDGETS, "QMainWindow"): _stub("QMainWindow"),
(MOD_QTWIDGETS, "QMenu"): _stub("QMenu"),
(MOD_QTWIDGETS, "QPushButton"): _stub("QPushButton"),
(MOD_QTWIDGETS, "QScrollArea"): _stub("QScrollArea"),
(MOD_QTWIDGETS, "QSlider"): _stub("QSlider"),
(MOD_QTWIDGETS, "QStackedWidget"): _stub("QStackedWidget"),
(MOD_QTWIDGETS, "QVBoxLayout"): _stub("QVBoxLayout"),
(MOD_QTWIDGETS, "QWidget"): _stub("QWidget"),
(MOD_QTWIDGETS, "QFrame"): _stub("QFrame"),
(MOD_QTWIDGETS, "QToolButton"): _stub("QToolButton"),
(MOD_QTWIDGETS, "QButtonGroup"): _stub("QButtonGroup"),
(MOD_QTWIDGETS, "QSizePolicy"): _stub("QSizePolicy"),
}
for (mod_name, attr_name), stub_value in _PYSIDE_STUBS.items():