class ObservableTestCase(TestCase): @setup def setup_observer(self): self.obs = Observable() def test_attach(self): func = lambda: 1 self.obs.attach('a', func) assert_equal(len(self.obs._observers), 1) assert_equal(self.obs._observers['a'], [func]) def test_listen_seq(self): func = lambda: 1 self.obs.attach(['a', 'b'], func) assert_equal(len(self.obs._observers), 2) assert_equal(self.obs._observers['a'], [func]) assert_equal(self.obs._observers['b'], [func]) def test_notify(self): handler = turtle.Turtle() self.obs.attach(['a', 'b'], handler) self.obs.notify('a') assert_equal(len(handler.handler.calls), 1) self.obs.notify('b') assert_equal(len(handler.handler.calls), 2)
class TestObservable(TestCase): @setup def setup_observer(self): self.obs = Observable() def test_attach(self): def func(): return 1 self.obs.attach('a', func) assert_equal(len(self.obs._observers), 1) assert_equal(self.obs._observers['a'], [func]) def test_listen_seq(self): def func(): return 1 self.obs.attach(['a', 'b'], func) assert_equal(len(self.obs._observers), 2) assert_equal(self.obs._observers['a'], [func]) assert_equal(self.obs._observers['b'], [func]) def test_notify(self): handler = mock.MagicMock() self.obs.attach(['a', 'b'], handler) self.obs.notify('a') assert_equal(len(handler.handler.mock_calls), 1) self.obs.notify('b') assert_equal(len(handler.handler.mock_calls), 2)
class ObservableTestCase(TestCase): @setup def setup_observer(self): self.obs = Observable() def test_attach(self): func = lambda: 1 self.obs.attach('a', func) assert_equal(len(self.obs._observers), 1) assert_equal(self.obs._observers['a'], [func]) def test_listen_seq(self): func = lambda: 1 self.obs.attach(['a', 'b'], func) assert_equal(len(self.obs._observers), 2) assert_equal(self.obs._observers['a'], [func]) assert_equal(self.obs._observers['b'], [func]) def test_notify(self): handler = turtle.Turtle() self.obs.attach(['a', 'b'], handler) self.obs.notify('a') assert_equal(len(handler.handler.calls), 1) self.obs.notify('b') assert_equal(len(handler.handler.calls), 2)
class TestObserver(TestCase): @setup def setup_observer(self): self.obs = Observable() def test_watch(self): event = "FIVE" handler = MockObserver(self.obs, event) self.obs.notify(event) assert_equal(handler.has_watched, 1) self.obs.notify("other event") assert_equal(handler.has_watched, 1) self.obs.notify(event) assert_equal(handler.has_watched, 2)