buzz/tests/mock_qt.py
2023-01-02 14:58:19 +00:00

31 lines
922 B
Python

import json
from typing import Optional
from PyQt6.QtCore import QByteArray, QObject, QSize, Qt, pyqtSignal
from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkReply
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