def test_demultiplexer_without_payload_and_steam(self): class Demultiplexer(WebsocketDemultiplexer): mapping = { 'users': 'binding.users', } groups = ['inbound'] with apply_routes([Demultiplexer.as_route(path='/')]): client = HttpClient() client.send_and_consume('websocket.connect', path='/') with self.assertRaises(ValueError) as value_error: client.send_and_consume('websocket.receive', path='/', text={ 'nostream': 'users', 'payload': 'test', }) self.assertIn('no channel/payload key', value_error.exception.args[0]) message = client.get_next_message('binding.users') self.assertIsNone(message) with self.assertRaises(ValueError) as value_error: client.send_and_consume('websocket.receive', path='/', text={ 'stream': 'users', }) self.assertIn('no channel/payload key', value_error.exception.args[0]) message = client.get_next_message('binding.users') self.assertIsNone(message)
def test_demultiplexer_without_payload_and_steam(self): class Demultiplexer(WebsocketDemultiplexer): mapping = { 'users': 'binding.users', } groups = ['inbound'] with apply_routes([Demultiplexer.as_route(path='/')]): client = HttpClient() client.send_and_consume('websocket.connect', path='/') with self.assertRaises(ValueError) as value_error: client.send_and_consume('websocket.receive', path='/', text={ 'nostream': 'users', 'payload': 'test', }) self.assertIn('no channel/payload key', value_error.exception.args[0]) message = client.get_next_message('binding.users') self.assertIsNone(message) with self.assertRaises(ValueError) as value_error: client.send_and_consume('websocket.receive', path='/', text={ 'stream': 'users', }) self.assertIn('no channel/payload key', value_error.exception.args[0]) message = client.get_next_message('binding.users') self.assertIsNone(message)
def test_demultiplexer_with_wrong_payload(self): class Demultiplexer(WebsocketDemultiplexer): mapping = { 'users': 'binding.users', } groups = ['inbound'] with apply_routes([Demultiplexer.as_route(path='/')]): client = HttpClient() client.send_and_consume('websocket.connect', path='/') with self.assertRaises(ValueError) as value_error: client.send_and_consume('websocket.receive', path='/', text={ 'stream': 'users', 'payload': 'test', }) self.assertEqual(value_error.exception.args[0], 'Multiplexed frame payload is not a dict') message = client.get_next_message('binding.users') self.assertIsNone(message)
def test_demultiplexer(self): class Demultiplexer(WebsocketDemultiplexer): mapping = { 'users': 'binding.users', } groups = ['inbound'] with apply_routes([Demultiplexer.as_route(path='/')]): client = HttpClient() client.send_and_consume('websocket.connect', path='/') # assert in group Group('inbound').send({'text': json.dumps({'test': 'yes'})}, immediately=True) self.assertEqual(client.receive(), {'test': 'yes'}) # assert that demultiplexer stream message client.send_and_consume('websocket.receive', path='/', text={ 'stream': 'users', 'payload': { 'test': 'yes' } }) message = client.get_next_message('binding.users') self.assertIsNotNone(message) self.assertEqual(message.content['test'], 'yes')
def test_demultiplexer_with_wrong_payload(self): class Demultiplexer(WebsocketDemultiplexer): mapping = { 'users': 'binding.users', } groups = ['inbound'] with apply_routes([Demultiplexer.as_route(path='/')]): client = HttpClient() client.send_and_consume('websocket.connect', path='/') with self.assertRaises(ValueError) as value_error: client.send_and_consume('websocket.receive', path='/', text={ 'stream': 'users', 'payload': 'test', }) self.assertEqual(value_error.exception.args[0], 'Multiplexed frame payload is not a dict') message = client.get_next_message('binding.users') self.assertIsNone(message)
def test_demultiplexer(self): class Demultiplexer(WebsocketDemultiplexer): mapping = { 'users': 'binding.users', } groups = ['inbound'] with apply_routes([Demultiplexer.as_route(path='/')]): client = HttpClient() client.send_and_consume('websocket.connect', path='/') # assert in group Group('inbound').send({'text': json.dumps({'test': 'yes'})}, immediately=True) self.assertEqual(client.receive(), {'test': 'yes'}) # assert that demultiplexer stream message client.send_and_consume('websocket.receive', path='/', text={'stream': 'users', 'payload': {'test': 'yes'}}) message = client.get_next_message('binding.users') self.assertIsNotNone(message) self.assertEqual(message.content['test'], 'yes')