You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
64 lines
1.5 KiB
import os
|
|
import unittest
|
|
import logging
|
|
import time
|
|
import threading
|
|
import uuid
|
|
|
|
from subprocess import Popen, PIPE
|
|
from signalrcore.hub_connection_builder import HubConnectionBuilder
|
|
from signalrcore.subject import Subject
|
|
from test.base_test_case import BaseTestCase, Urls
|
|
|
|
class TestClientStreamMethod(BaseTestCase):
|
|
def setUp(self):
|
|
pass
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
def test_start(self):
|
|
connection = HubConnectionBuilder()\
|
|
.with_url(self.server_url, options={"verify_ssl": False})\
|
|
.configure_logging(logging.ERROR)\
|
|
.build()
|
|
|
|
_lock = threading.Lock()
|
|
self.assertTrue(_lock.acquire(timeout=30))
|
|
|
|
|
|
connection.on_open(lambda: _lock.release())
|
|
connection.on_close(lambda: _lock.release())
|
|
|
|
result = connection.start()
|
|
|
|
self.assertTrue(result)
|
|
|
|
self.assertTrue(_lock.acquire(timeout=30)) # Released on open
|
|
|
|
result = connection.start()
|
|
|
|
self.assertFalse(result)
|
|
|
|
connection.stop()
|
|
|
|
def test_open_close(self):
|
|
self.connection = self.get_connection()
|
|
|
|
_lock = threading.Lock()
|
|
|
|
self.connection.on_open(lambda: _lock.release())
|
|
self.connection.on_close(lambda: _lock.release())
|
|
|
|
self.assertTrue(_lock.acquire())
|
|
|
|
self.connection.start()
|
|
|
|
self.assertTrue(_lock.acquire())
|
|
|
|
self.connection.stop()
|
|
|
|
self.assertTrue(_lock.acquire())
|
|
|
|
_lock.release()
|
|
del _lock |