def test_newsletters_cached(self): models.Newsletter.objects.create( slug='slug', title='title', vendor_id='VEND1', active=False, languages='en-US, fr, de ', ) # This should get the data cached newsletter_fields() # Now request it again and it shouldn't have to generate the # data from scratch. with patch('basket.news.newsletters._get_newsletters_data') as get: newsletter_fields() self.assertFalse(get.called)
def test_cache_clear_on_delete(self): # Our caching of newsletter data doesn't result in wrong answers # when newsletters are deleted nl1 = models.Newsletter.objects.create( slug='slug', title='title', vendor_id='VEND1', active=False, languages='en-US, fr, de ', ) vendor_ids = newsletter_fields() self.assertEqual([u'VEND1'], vendor_ids) # Now delete it nl1.delete() vendor_ids = newsletter_fields() self.assertEqual([], vendor_ids)
def test_cache_clearing(self): # Our caching of newsletter data doesn't result in wrong answers # when newsletters change models.Newsletter.objects.create( slug='slug', title='title', vendor_id='VEND1', active=False, languages='en-US, fr, de ', ) vendor_ids = newsletter_fields() self.assertEqual([u'VEND1'], vendor_ids) # Now add another newsletter models.Newsletter.objects.create( slug='slug2', title='title2', vendor_id='VEND2', active=False, languages='en-US, fr, de ', ) vendor_ids2 = set(newsletter_fields()) self.assertEqual(set([u'VEND1', u'VEND2']), vendor_ids2)