def test_part(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') c2 = yield self._mk_client('bar') yield c1.read_message() # C2's join c2.close() response = yield c1.read_message() self.assertEqual( { 'sender': c2.config['id'], 'kind': 'part', 'body': None }, json.loads(response)) c1.close() # Wait for the channel to be removed. yield gen.sleep(0.001) with self.assertRaises(ChannelDoesNotExist): Channels.get(self.channel_id)
def test_join(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') yield self._mk_client('bar') yield c1.read_message() # C2's join self.assertEqual(2, len(channel.clients))
def test_nick(self): channel = Channels.get(self.channel_id) nick_1 = 'foo' nick_2 = 'bar' c1 = yield self._mk_client(nick_1) yield self._mk_client(nick_2) yield c1.read_message() # C2's join self.assertEqual({nick_1, nick_2}, set(channel.members.values()))
def test_ping(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c = yield self._mk_client('foo') send(c, m('ping')) response = yield c.read_message() self.assertEqual({ "kind": "pong", "body": None, "sender": None }, json.loads(response))
def open(self, channel_id): self.channel_id = channel_id try: self.channel = Channels.get(self.channel_id) self.id = self.channel.new_id() # Tell the user their id and the channel's meta data. Message(MT.config, body={ "id": self.id, "meta": self.channel.meta }).send(self) self.channel.connections += 1 except ChannelDoesNotExist: self.respond_with_error("Channel does not exist.") self.close()
def test_nick_change(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') c2 = yield self._mk_client('bar') send(c1, m('nick', 'foo-new')) response = yield c2.read_message() self.assertEqual({ "kind": "nick", "body": "foo-new", "sender": c1.config['id'] }, json.loads(response))
def test_part(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') c2 = yield self._mk_client('bar') yield c1.read_message() # C2's join c2.close() response = yield c1.read_message() self.assertEqual({ 'sender': c2.config['id'], 'kind': 'part', 'body': None }, json.loads(response)) c1.close() # Wait for the channel to be removed. yield gen.sleep(0.001) with self.assertRaises(ChannelDoesNotExist): Channels.get(self.channel_id)
def test_chat(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') c2 = yield self._mk_client('bar') yield c1.read_message() # C2's join send(c1, m('chat', 'hey!')) response = yield c2.read_message() self.assertEqual({ 'sender': c1.config['id'], 'kind': 'chat', 'body': 'hey!' }, json.loads(response))
def test_nick_change(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') c2 = yield self._mk_client('bar') send(c1, m('nick', 'foo-new')) response = yield c2.read_message() self.assertEqual( { "kind": "nick", "body": "foo-new", "sender": c1.config['id'] }, json.loads(response))
def test_create(self): meta = "common" channel_id = "test-channel" body = "&".join([ "id={channel_id}", "meta={meta}", ]).format(**locals()) response = json.loads( self.fetch('/channels/new', method='POST', body=body).body.decode('utf8')) self.assertEqual({"meta": meta, "id": channel_id}, response) channel = Channels.get(channel_id) self.assertEqual(meta, channel.meta)
def test_chat(self): channel = Channels.get(self.channel_id) self.assertEqual(0, len(channel.clients)) c1 = yield self._mk_client('foo') c2 = yield self._mk_client('bar') yield c1.read_message() # C2's join send(c1, m('chat', 'hey!')) response = yield c2.read_message() self.assertEqual( { 'sender': c1.config['id'], 'kind': 'chat', 'body': 'hey!' }, json.loads(response))
def test_create(self): meta = "common" channel_id = "test-channel" body = "&".join([ "id={channel_id}", "meta={meta}", ]).format(**locals()) response = json.loads(self.fetch( '/channels/new', method='POST', body=body ).body.decode('utf8')) self.assertEqual({ "meta": meta, "id": channel_id }, response) channel = Channels.get(channel_id) self.assertEqual(meta, channel.meta)
def test_create(self): Channels.create(self.channel_id, self.meta) channel = Channels.get(self.channel_id) self.assertEqual(self.meta, channel.meta)
def test_does_not_exist(self): with self.assertRaises(ChannelDoesNotExist): Channels.get(self.channel_id)