def test_loginThenWall(self): """ When a user logs in the 'wall' method on their ChatterElement gets called, notifiying everyone in the room that they have entered. """ from chatthing.chatterbox import ChatRoom jethroHeard = [] cletusHeard = [] cr = ChatRoom() user1 = cr.makeChatter() user1.wall = lambda msg: jethroHeard.append(msg) user1.setUsername(u'jethro') user2 = cr.makeChatter() user2.wall = lambda msg: cletusHeard.append(msg) user2.setUsername(u'cletus') self.assertEquals(jethroHeard, [u' * user jethro has joined the room', u' * user cletus has joined the room']) self.assertEquals(cletusHeard, [u' * user cletus has joined the room'])
def test_sayThenHear(self): """ When a user calls the 'say' method on their ChatterElement, everyone (including them) should 'hear' it. """ from chatthing.chatterbox import ChatRoom cr = ChatRoom() user1 = cr.makeChatter() user1.wall = lambda msg: msg user1.setUsername(u'jethro') user2 = cr.makeChatter() user2.wall = lambda msg: msg user2.setUsername(u'cletus') jethroHeard = [] cletusHeard = [] user1.hear = lambda who, what: jethroHeard.append((who,what)) user2.hear = lambda who, what: cletusHeard.append((who,what)) say = expose.get(user1, 'say') say(u'Hey, Cletus!') self.assertEquals(jethroHeard, cletusHeard) self.assertEquals(cletusHeard, [(u'jethro', u'Hey, Cletus!')])