1############################################################################# 2## 3## Copyright (C) 2016 The Qt Company Ltd. 4## Contact: https://www.qt.io/licensing/ 5## 6## This file is part of the test suite of Qt for Python. 7## 8## $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9## Commercial License Usage 10## Licensees holding valid commercial Qt licenses may use this file in 11## accordance with the commercial license agreement provided with the 12## Software or, alternatively, in accordance with the terms contained in 13## a written agreement between you and The Qt Company. For licensing terms 14## and conditions see https://www.qt.io/terms-conditions. For further 15## information use the contact form at https://www.qt.io/contact-us. 16## 17## GNU General Public License Usage 18## Alternatively, this file may be used under the terms of the GNU 19## General Public License version 3 as published by the Free Software 20## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21## included in the packaging of this file. Please review the following 22## information to ensure the GNU General Public License requirements will 23## be met: https://www.gnu.org/licenses/gpl-3.0.html. 24## 25## $QT_END_LICENSE$ 26## 27############################################################################# 28 29'''Test cases for QUdpSocket''' 30 31import os 32import sys 33import unittest 34 35sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 36from init_paths import init_test_paths 37init_test_paths(False) 38 39from PySide2.QtCore import QUrl, QObject, SIGNAL, QCoreApplication, QTimer 40from PySide2.QtNetwork import QUdpSocket, QHostAddress 41import py3kcompat as py3k 42 43class HttpSignalsCase(unittest.TestCase): 44 '''Test case for bug #124 - readDatagram signature 45 46 QUdpSocket.readDatagram must return a tuple with the datagram, host and 47 port, while receiving only the max payload size.''' 48 49 def setUp(self): 50 #Acquire resources 51 self.called = False 52 self.app = QCoreApplication([]) 53 54 self.socket = QUdpSocket() 55 56 self.server = QUdpSocket() 57 self.server.bind(QHostAddress(QHostAddress.LocalHost), 45454) 58 59 def tearDown(self): 60 #Release resources 61 del self.socket 62 del self.server 63 del self.app 64 65 def sendPackage(self): 66 addr = QHostAddress(QHostAddress.LocalHost) 67 self.socket.writeDatagram(py3k.b('datagram'), addr, 45454) 68 69 def callback(self): 70 while self.server.hasPendingDatagrams(): 71 datagram, host, port = self.server.readDatagram(self.server.pendingDatagramSize()) 72 self.called = True 73 self.app.quit() 74 75 def testDefaultArgs(self): 76 #QUdpSocket.readDatagram pythonic return 77 # @bug 124 78 QObject.connect(self.server, SIGNAL('readyRead()'), self.callback) 79 self.sendPackage() 80 self.app.exec_() 81 82 self.assertTrue(self.called) 83 84if __name__ == '__main__': 85 unittest.main() 86