コード例 #1
0
ファイル: test_sse_client.py プロジェクト: kudrom/lupulo
 def setUp(self):
     self.protocol = SSEClientProtocol()
コード例 #2
0
ファイル: test_sse_client.py プロジェクト: kudrom/lupulo
class TestWebServer(unittest.TestCase):
    def setUp(self):
        self.protocol = SSEClientProtocol()

    def test_add_callback(self):
        callback1 = MagicMock()
        self.assertEqual(len(self.protocol.callbacks), 0)
        self.protocol.addCallback("random_event", callback1)
        self.assertEqual(len(self.protocol.callbacks), 1)
        self.assertIn('random_event', self.protocol.callbacks)
        self.assertEqual(self.protocol.callbacks['random_event'], callback1)
        callback2 = MagicMock()
        self.protocol.addCallback("random_event", callback2)
        self.assertEqual(self.protocol.callbacks['random_event'], callback2)

    def test_protocol_missing_data(self):
        callback = MagicMock()
        self.protocol.addCallback("random_event", callback)
        self.protocol.lineReceived("event: random_event")
        self.assertEqual(self.protocol.event, "random_event")
        self.protocol.lineReceived("")
        callback.assert_called_once_with("")

    def test_protocol_missing_event(self):
        callback = MagicMock()
        self.protocol.addCallback("message", callback)
        self.protocol.lineReceived("data: random_data")
        self.assertEqual(self.protocol.data, "random_data")
        self.protocol.lineReceived("")
        callback.assert_called_once_with("random_data")

    def test_protocol_invalid_event(self):
        self.protocol.lineReceived("event: random_event")
        self.protocol.lineReceived("")
        self.assertEqual(self.protocol.data, "")
        self.assertEqual(self.protocol.event, "message")

    def test_protocol_valid_data(self):
        callback = MagicMock()
        self.protocol.addCallback("random_event", callback)
        self.protocol.lineReceived("event: random_event")
        self.protocol.lineReceived("data: random_data")
        self.assertEqual(self.protocol.data, "random_data")
        self.assertEqual(self.protocol.event, "random_event")
        self.protocol.lineReceived("")
        callback.assert_called_once_with("random_data")

    def test_no_web_server_without_hanging(self):
        base_url = 'http://localhost:' + str(settings['web_server_port'])
        client = SSEClient(base_url + '/subscribe')
        return client.connect()