test_publisher.py 1.01 KB
Newer Older
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed
# coding=utf-8
from unittest import TestCase
from earthdiagnostics.publisher import Publisher
from mock import Mock


class TestPublisher(TestCase):

    def test_suscribe(self):
        suscriber = Mock()
        pub = Publisher()
        pub.subscribe(suscriber, callback=suscriber.callback)
        self.assertIn(suscriber, pub.suscribers)
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed

    def test_suscribe_default(self):
        suscriber = Mock()
        pub = Publisher()
        pub.subscribe(suscriber)
        self.assertTrue(hasattr(suscriber, 'update'))
        self.assertIn(suscriber, pub.suscribers)
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed

    def test_unsuscribe(self):
        suscriber = Mock()
        pub = Publisher()
        pub.subscribe(suscriber, callback=suscriber.callback)
        pub.unsubscribe(suscriber)

        self.assertNotIn(suscriber, pub.suscribers)
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed

    def test_dispatch(self):
        suscriber = Mock()
        pub = Publisher()
        pub.subscribe(suscriber, callback=suscriber.callback)

        pub.dispatch(1, 2, 3)
        suscriber.callback.assert_called_with(1, 2, 3)