def test_permission_to_sub(self): c = self.make_connection() name, rand = readinfo(parse(c.transport.write)[0][1]) c.data_received(msgauth(rand, 'test', 'secret')) c.data_received(msgsubscribe('test', 'test-chan2')) assert parse(c.transport.write)[1][1] == b'Authkey not allowed to sub here. ident=test, chan=test-chan2'
def test_auth_unsubscribe(self): c = self.make_connection() name, rand = readinfo(parse(c.transport.write)[0][1]) c.data_received(msgauth(rand, 'test', 'secret')) c.data_received(msgsubscribe('test', 'test-chan')) c.data_received(msgpublish('test', 'test-chan', b'c')) c.data_received(msgunsubscribe('test', 'test-chan')) c.data_received(msgpublish('test', 'test-chan', b'c')) c.data_received(msgsubscribe('test', 'test-chan')) c.data_received(msgpublish('test', 'test-chan', b'c')) messages = parse(c.transport.write) for msg in messages[1:]: assert readpublish(msg[1]) == ('test', 'test-chan', b'c') # 1 auth and 2 publish assert len(messages) == 3
def test_auth_success(self): c = self.make_connection() name, rand = readinfo(parse(c.transport.write)[0][1]) c.data_received(msgauth(rand, 'test', 'secret')) c.data_received(msgsubscribe('test', 'test-chan')) c.data_received(msgpublish('test', 'test-chan', b'c')) assert readpublish(parse(c.transport.write)[1][1]) == ('test', 'test-chan', b'c')
def test_multiple_subscribers(self): subscribers = [] for i in range(5): c = self.make_connection() name, rand = readinfo(parse(c.transport.write)[0][1]) c.data_received(msgauth(rand, 'test', 'secret')) c.data_received(msgsubscribe('test', 'test-chan')) subscribers.append(c) c = self.make_connection() name, rand = readinfo(parse(c.transport.write)[0][1]) c.data_received(msgauth(rand, 'test', 'secret')) c.data_received(msgpublish('test', 'test-chan', b'c')) for c in subscribers: msgs = parse(c.transport.write) assert readpublish(msgs[1][1]) == ('test', 'test-chan', b'c')
def subscribe(self, channel): self.subscriptions.add(channel) self._reactor.write(msgsubscribe(self.ident, channel))
def subscribe(self, ident, channel): self.transport.write(msgsubscribe(ident, channel))
def test_msgsubscribe(self): msg = msgsubscribe('ident', 'chan') assert msg == b'\x00\x00\x00\x0f\x04\x05identchan'