Example #1
0
 def setUp(self):
     super().setUp()
     self.topic = Topic('lolcatz')
     self.topic.subscribers = ['brendand']
Example #2
0
class TestTopic(unittest.TestCase):

    def setUp(self):
        super().setUp()
        self.topic = Topic('lolcatz')
        self.topic.subscribers = ['brendand']

    def test_subscribe(self):
        user = '******'
        self.topic.subscribe(user)
        self.assertIn(user, self.topic.subscribers)

    def test_unsubscribe(self):
        user = '******'
        self.topic.subscribers = ['joe', 'bob', 'bill', 'brendand']
        self.topic.unsubscribe(user)
        self.assertNotIn(user, self.topic.subscribers)

    def test_add_message(self):
        self.topic.add_message('lolcatz r fun')
        self.assertEqual('lolcatz r fun', self.topic.messages[0].body)
        self.assertEqual(['brendand'], self.topic.messages[0].watchers)

    def test_next_message(self):
        add_message = Message('lolcatz r fun', ['brendand'])
        self.topic.messages.append(add_message)
        message = self.topic.next_message('brendand')
        self.assertEqual('lolcatz r fun', message)

    def test_next_message_read_all(self):
        add_message = Message('lolcatz r fun', ['brendand'])
        self.topic.messages.append(add_message)
        message1 = self.topic.next_message('brendand')
        self.assertEqual('lolcatz r fun', message1)
        message2 = self.topic.next_message('brendand')
        self.assertIsNone(message2)

    def test_next_message_for_not_subscribed_user(self):
        with self.assertRaises(NotSubscribedError):
            self.topic.next_message('anon')