buzz/tests/mock_qt.py
2023-11-09 09:20:38 +00:00

31 lines
941 B
Python

import json
from typing import Optional
from PyQt6.QtCore import QByteArray, QObject, pyqtSignal
from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest
class MockNetworkReply(QNetworkReply):
def __init__(self, data: object, _: Optional[QObject] = None) -> None:
self.data = data
def readAll(self) -> "QByteArray":
return QByteArray(json.dumps(self.data).encode("utf-8"))
def error(self) -> "QNetworkReply.NetworkError":
return QNetworkReply.NetworkError.NoError
class MockNetworkAccessManager(QNetworkAccessManager):
finished = pyqtSignal(object)
reply: MockNetworkReply
def __init__(
self, reply: MockNetworkReply, parent: Optional[QObject] = None
) -> None:
super().__init__(parent)
self.reply = reply
def get(self, _: "QNetworkRequest") -> "QNetworkReply":
self.finished.emit(self.reply)
return self.reply