def test_subscriber_is_notified_on_update(): data_source = MongoDataSource(User) user = User(name='Anders', age=12) user.save() notified = { 'notified_data_source': None, 'notified_entity_id': None } def notify(data_source, entity): notified['notified_data_source'] = data_source notified['notified_entity_id'] = entity.id data_source.subscribe(notify) user.name = 'Emil' user.save() assert notified == { 'notified_data_source': data_source, 'notified_entity_id': user.id } data_source.disconnect()
def test_collection_whide_invalidation(): user = User(name='Anders', age=12) user.save() assert score() == 50 assert smache.is_fun_fresh(score) == True user.name = 'Emil' user.save() assert smache.is_fun_fresh(score) == False
def test_depending_computed_are_invalidated_on_save(): user = User(name='Anders', age=12) user.save() assert name(user) == 'Anders' assert smache.is_fun_fresh(name, user) == True user.name = 'Emil' user.save() assert smache.is_fun_fresh(name, user) == False
def test_subscriber_is_notified_on_update(): data_source = MongoDataSource(User) user = User(name='Anders', age=12) user.save() notified = {'notified_data_source': None, 'notified_entity_id': None} def notify(data_source, entity): notified['notified_data_source'] = data_source notified['notified_entity_id'] = entity.id data_source.subscribe(notify) user.name = 'Emil' user.save() assert notified == { 'notified_data_source': data_source, 'notified_entity_id': user.id } data_source.disconnect()