Example #1
0
    def test_content_driven_cache_wrap(self):
        cache_name = self.check_cache_gone('content')

        # Pass a non-empty list as content
        cache = PersistentCache(cache_name, cache_manager=self.manager, contents=[''],
            builder=lambda *args: [])
        cache[0] = 'foo'
        cache.append('bar')
        cache.save()

        cache.load()
        self.assertTrue(isinstance(cache, PersistentCache))
        self.assertTrue(isinstance(cache.contents, list))
        self.check_cache(cache_name, True)
        self.assertEqual(cache[0], 'foo')
        self.assertEqual(cache[1], 'bar')

        cache.invalidate_and_rebuild()
        self.assertTrue(isinstance(cache, PersistentCache))
        self.assertTrue(isinstance(cache.contents, list))
        self.assert_contents_equal(cache, [])