def test_invalidation_signal(self): def set_signal(signal=None, **kwargs): signal_calls.append(kwargs) signal_calls = [] cache_invalidated.connect(set_signal, dispatch_uid=1, weak=False) invalidate_all() invalidate_model(Post) c = Category.objects.create(title='Hey') self.assertEqual(signal_calls, [ { 'sender': None, 'obj_dict': None }, { 'sender': Post, 'obj_dict': None }, { 'sender': Category, 'obj_dict': { 'id': c.pk, 'title': 'Hey' } }, ])
def ready(self): """Populate settings.CONSTANCE_CONFIG with collected config from each apps""" final_config = OrderedDict() fieldsets = {} for app in get_his_apps(): if hasattr(app, 'config'): config_keys = [] for key, value in app.config.items(): full_key = '%s_%s' % (app.label, key) final_config[full_key] = value config_keys.append(full_key) fieldsets[app.label] = config_keys settings.CONSTANCE_CONFIG.update(final_config) settings.CONSTANCE_CONFIG_FIELDSETS.update(fieldsets) cache_invalidated.connect(clear_cache)
def test_invalidation_signal(self): def set_signal(signal=None, **kwargs): signal_calls.append(kwargs) signal_calls = [] cache_invalidated.connect(set_signal, dispatch_uid=1, weak=False) invalidate_all() invalidate_model(Post) c = Category.objects.create(title='Hey') self.assertEqual(signal_calls, [ {'sender': None, 'obj_dict': None}, {'sender': Post, 'obj_dict': None}, {'sender': Category, 'obj_dict': {'id': c.pk, 'title': 'Hey'}}, ])
def ready(self): cache_read.connect(stats_collector) cache_invalidated.connect(stats_invalidate)
instance.remove_stale_data(instance.content_types.all()) m2m_changed.connect(handle_cf_removed_obj_types, sender=CustomField.content_types.through) post_save.connect(handle_cf_renamed, sender=CustomField) pre_delete.connect(handle_cf_deleted, sender=CustomField) # # Caching # cacheops_cache_hit = Counter('cacheops_cache_hit', 'Number of cache hits') cacheops_cache_miss = Counter('cacheops_cache_miss', 'Number of cache misses') cacheops_cache_invalidated = Counter('cacheops_cache_invalidated', 'Number of cache invalidations') def cache_read_collector(sender, func, hit, **kwargs): if hit: cacheops_cache_hit.inc() else: cacheops_cache_miss.inc() def cache_invalidated_collector(sender, obj_dict, **kwargs): cacheops_cache_invalidated.inc() cache_read.connect(cache_read_collector) cache_invalidated.connect(cache_invalidated_collector)