def test_delete_removes_cache(self): """Test that delete() removes the record from the cache""" unsub = maker.make(models.Unsubscribe, address='*****@*****.**') self.mockcache.set.assert_called_with( models._cache_name('*****@*****.**'), unsub) unsub.delete() self.mockcache.delete.assert_called_with( models._cache_name('*****@*****.**'))
def test_entry_does_not_exist(self): """Test when an address does not have an entry""" self.mockcache.get.return_value = None self.assertFalse( models.Unsubscribe.objects.address_exists('*****@*****.**')) self.mockcache.set.assert_called_with( models._cache_name('*****@*****.**'), False)
def test_entry_exists_not_in_cache(self): """Test when an unsubscribe entry exists but is not in a cache""" self.mockcache.get.return_value = None unsub = maker.make(models.Unsubscribe, address='*****@*****.**') self.assertTrue( models.Unsubscribe.objects.address_exists('*****@*****.**')) self.mockcache.set.assert_called_with( models._cache_name('*****@*****.**'), unsub)
def test_multiple_unsubscribe_records(self): """Test where someone has unsubscribed multiple times""" self.mockcache.get.return_value = None self.assertFalse( models.Unsubscribe.objects.address_exists('*****@*****.**')) first_unsub = maker.make( models.Unsubscribe, address='*****@*****.**') maker.make(models.Unsubscribe, address='*****@*****.**') self.assertEqual(models.Unsubscribe.objects.filter( address='*****@*****.**').count(), 2) self.assertTrue(models.Unsubscribe.objects.address_exists( '*****@*****.**')) self.mockcache.set.assert_called_with( models._cache_name('*****@*****.**'), first_unsub)
def test_multiple_unsubscribe_records(self): """Test where someone has unsubscribed multiple times""" self.mockcache.get.return_value = None self.assertFalse( models.Unsubscribe.objects.address_exists('*****@*****.**')) first_unsub = maker.make(models.Unsubscribe, address='*****@*****.**') maker.make(models.Unsubscribe, address='*****@*****.**') self.assertEqual( models.Unsubscribe.objects.filter( address='*****@*****.**').count(), 2) self.assertTrue( models.Unsubscribe.objects.address_exists('*****@*****.**')) self.mockcache.set.assert_called_with( models._cache_name('*****@*****.**'), first_unsub)
def test_save_sets_cache(self): """Test that save() sets the cache""" unsub = maker.make(models.Unsubscribe, address='*****@*****.**') self.mockcache.set.assert_called_with( models._cache_name('*****@*****.**'), unsub)
def test_cache_name_generator(self): """Test the key name generator for our unsubscribe cache""" name = models._cache_name('*****@*****.**') hexaddress = hashlib.md5('*****@*****.**').hexdigest() self.assertIn('unsub-', name) self.assertIn(hexaddress, name)