emmental/lib/test_publisher.py

31 lines
914 B
Python

# Copyright 2020 (c) Anna Schumaker.
from . import publisher
import unittest
class TestPublisher(unittest.TestCase):
def on_test(self, text):
self.test_arg = text
def test_publisher_init(self):
pub = publisher.Publisher()
self.assertIsInstance(pub.subscribers, set)
self.assertEqual(pub.subscribers, set())
def test_publisher_register(self):
pub = publisher.Publisher()
pub.register(self.on_test)
self.assertEqual(pub.subscribers, { self.on_test })
pub.unregister(self.on_test)
self.assertEqual(pub.subscribers, set())
pub.subscribers = set([ 1, 2, 3 ])
pub.reset()
self.assertEqual(pub.subscribers, set())
def test_publisher_publish(self):
pub = publisher.Publisher()
pub.register(self.on_test)
pub.publish("Test Arg")
self.assertEqual(self.test_arg, "Test Arg")