def test_listen_by_base_class(self): mock = Mock() listen(BasePerson, 'gone_sleep', mock) p = MyPerson('James') p.sleep() mock.assert_called_once( ) # only available in python 3.6 for builtin unittest.mock
def test_event_works(self): mock_listener = create_autospec(self._gone_sleep_notification) listen(MyPerson, 'gone_sleep', self._gone_sleep_notification) listen(MyPerson, 'gone_sleep', mock_listener) p = MyPerson('Wonder') p.sleep() mock_listener.assert_called_once_with(p, 'gone_sleep')
def test_orm_events(self): ma, mu, md = Mock(), Mock(), Mock() listen(Person, 'post_add', ma) listen(Person, 'post_update', mu) listen(Person, 'post_delete', md) p = Person(name='Wonder', _key='10000', dob=date(year=2016, month=9, day=12)) res = self.db.add(p) ma.assert_called_once_with(p, 'post_add', db=self.db, result=res) res = self.db.update(p) mu.assert_called_once_with(p, 'post_update', db=self.db, result=res) res = self.db.update(p) assert mu.call_count == 2 res = self.db.delete(p) md.assert_called_once_with(p, 'post_delete', db=self.db, result=res)