Example #1
0
 def setUp(self):
     self.databroker_meta = FakeDataBrokerMeta()
     self.databroker_meta.filebroker = FakeFileBrokerMeta()
     self.databroker_bib = FakeDataBrokerBib()
     self.databroker_bib.filebroker = FakeFileBrokerBib()
     self.metacache = CacheEntrySet(self.databroker_meta, 'metacache')
     self.bibcache = CacheEntrySet(self.databroker_bib, 'bibcache')
Example #2
0
 def setUp(self):
     self.databroker_meta = FakeDataBrokerMeta()
     self.databroker_meta.filebroker = FakeFileBrokerMeta()
     self.databroker_bib = FakeDataBrokerBib()
     self.databroker_bib.filebroker = FakeFileBrokerBib()
     self.metacache = CacheEntrySet(self.databroker_meta, "metacache")
     self.bibcache = CacheEntrySet(self.databroker_bib, "bibcache")
Example #3
0
 def test_bibcache_does_not_call_bib_functions(self):
     with self.assertRaises(AttributeError):
         CacheEntrySet(self.databroker_meta, 'bibcache')
Example #4
0
class TestCacheEntrySet(unittest.TestCase):

    def setUp(self):
        self.databroker_meta = FakeDataBrokerMeta()
        self.databroker_meta.filebroker = FakeFileBrokerMeta()
        self.databroker_bib = FakeDataBrokerBib()
        self.databroker_bib.filebroker = FakeFileBrokerBib()
        self.metacache = CacheEntrySet(self.databroker_meta, 'metacache')
        self.bibcache = CacheEntrySet(self.databroker_bib, 'bibcache')

    def test_metacache_does_not_call_bib_functions(self):
        with self.assertRaises(AttributeError):
            CacheEntrySet(self.databroker_bib, 'metacache')

    def test_bibcache_does_not_call_bib_functions(self):
        with self.assertRaises(AttributeError):
            CacheEntrySet(self.databroker_meta, 'bibcache')

    def test_push_pushes_to_file(self):
        self.metacache.push('a', 'b')
        self.assertEqual(self.databroker_meta.meta, 'b')
        self.bibcache.push('a', 'b')
        self.assertEqual(self.databroker_bib.bib, 'b')

    def test_push_to_cache_does_not_push_to_file(self):
        self.metacache.push_to_cache('a', 'b')
        self.assertIs(self.databroker_meta.meta, None)
        self.bibcache.push_to_cache('a', 'b')
        self.assertIs(self.databroker_bib.bib, None)

    def test_push_to_cache_pushes_to_cache(self):
        self.metacache.push_to_cache('a', 'b')
        self.assertIs(self.metacache.entries['a'].data, 'b')
        self.bibcache.push_to_cache('a', 'b')
        self.assertIs(self.bibcache.entries['a'].data, 'b')

    def test_pulls_from_file(self):
        self.databroker_meta.meta = 'b'
        value = self.metacache.pull('a')
        self.assertEqual(value, 'b')
        self.databroker_bib.bib = 'b'
        value = self.bibcache.pull('a')
        self.assertEqual(value, 'b')

    def test_pulls_from_cache(self):
        self.databroker_meta.meta = 'b'
        self.databroker_meta.filebroker.mtime = time.time()
        self.metacache.push_to_cache('a', 'c')
        self.databroker_meta.filebroker.mtime = time.time() - 1.1
        value = self.metacache.pull('a')
        self.assertEqual(value, 'c')
        self.databroker_bib.bib = 'b'
        self.databroker_bib.filebroker.mtime = time.time()
        self.bibcache.push_to_cache('a', 'c')
        self.databroker_bib.filebroker.mtime = time.time() - 1.1
        value = self.bibcache.pull('a')
        self.assertEqual(value, 'c')

    def test_pulls_outdated_from_file(self):
        self.databroker_meta.meta = 'b'
        self.databroker_meta.filebroker.mtime = time.time()
        self.metacache.push_to_cache('a', 'c')
        self.databroker_meta.filebroker.mtime = time.time() + 1.1
        value = self.metacache.pull('a')
        self.assertEqual(value, 'b')
        self.databroker_bib.bib = 'b'
        self.databroker_bib.filebroker.mtime = time.time()
        self.bibcache.push_to_cache('a', 'c')
        self.databroker_bib.filebroker.mtime = time.time() + 1.1
        value = self.bibcache.pull('a')
        self.assertEqual(value, 'b')


    def test_is_outdated_when_unknown_citekey(self):
        self.assertTrue(self.metacache._is_outdated('a'))

    def test_is_outdated_when_newer_mtime(self):
        # Actually tests for mtime in future
        self.bibcache.push_to_cache('a', 'b')
        self.databroker_meta.filebroker.mtime = time.time() + 1.1
        self.assertTrue(self.metacache._is_outdated('a'))

    def test_is_not_outdated_when_older_mtime(self):
        # Actually tests for mtime in future
        self.databroker_meta.filebroker.mtime = time.time()
        self.metacache.push_to_cache('a', 'b')
        self.databroker_meta.filebroker.mtime = time.time() - 1.1
        self.assertFalse(self.metacache._is_outdated('a'))
Example #5
0
class TestCacheEntrySet(unittest.TestCase):
    def setUp(self):
        self.databroker_meta = FakeDataBrokerMeta()
        self.databroker_meta.filebroker = FakeFileBrokerMeta()
        self.databroker_bib = FakeDataBrokerBib()
        self.databroker_bib.filebroker = FakeFileBrokerBib()
        self.metacache = CacheEntrySet(self.databroker_meta, "metacache")
        self.bibcache = CacheEntrySet(self.databroker_bib, "bibcache")

    def test_metacache_does_not_call_bib_functions(self):
        with self.assertRaises(AttributeError):
            CacheEntrySet(self.databroker_bib, "metacache")

    def test_bibcache_does_not_call_bib_functions(self):
        with self.assertRaises(AttributeError):
            CacheEntrySet(self.databroker_meta, "bibcache")

    def test_push_pushes_to_file(self):
        self.metacache.push("a", "b")
        self.assertEqual(self.databroker_meta.meta, "b")
        self.bibcache.push("a", "b")
        self.assertEqual(self.databroker_bib.bib, "b")

    def test_push_to_cache_does_not_push_to_file(self):
        self.metacache.push_to_cache("a", "b")
        self.assertIs(self.databroker_meta.meta, None)
        self.bibcache.push_to_cache("a", "b")
        self.assertIs(self.databroker_bib.bib, None)

    def test_push_to_cache_pushes_to_cache(self):
        self.metacache.push_to_cache("a", "b")
        self.assertIs(self.metacache.entries["a"].data, "b")
        self.bibcache.push_to_cache("a", "b")
        self.assertIs(self.bibcache.entries["a"].data, "b")

    def test_pulls_from_file(self):
        self.databroker_meta.meta = "b"
        value = self.metacache.pull("a")
        self.assertEqual(value, "b")
        self.databroker_bib.bib = "b"
        value = self.bibcache.pull("a")
        self.assertEqual(value, "b")

    def test_pulls_from_cache(self):
        self.databroker_meta.meta = "b"
        self.databroker_meta.filebroker.mtime = time.time()
        self.metacache.push_to_cache("a", "c")
        self.databroker_meta.filebroker.mtime = time.time() - 1.1
        value = self.metacache.pull("a")
        self.assertEqual(value, "c")
        self.databroker_meta.filebroker.mtime = time.time()
        self.databroker_bib.bib = "b"
        self.databroker_bib.filebroker.mtime = time.time() - 1.1
        self.bibcache.push_to_cache("a", "c")
        value = self.bibcache.pull("a")
        self.assertEqual(value, "c")

    def test_pulls_outdated_from_file(self):
        self.databroker_meta.meta = "b"
        self.databroker_meta.filebroker.mtime = time.time()
        self.metacache.push_to_cache("a", "c")
        self.databroker_meta.filebroker.mtime = time.time() + 1.1
        value = self.metacache.pull("a")
        self.assertEqual(value, "b")
        self.databroker_bib.bib = "b"
        self.databroker_bib.filebroker.mtime = time.time()
        self.bibcache.push_to_cache("a", "c")
        self.databroker_bib.filebroker.mtime = time.time() + 1.1
        value = self.bibcache.pull("a")
        self.assertEqual(value, "b")

    def test_is_outdated_when_unknown_citekey(self):
        self.assertTrue(self.metacache._is_outdated("a"))

    def test_is_outdated_when_newer_mtime(self):
        # Actually tests for mtime in future
        self.bibcache.push_to_cache("a", "b")
        self.databroker_meta.filebroker.mtime = time.time() + 1.1
        self.assertTrue(self.metacache._is_outdated("a"))

    def test_is_not_outdated_when_older_mtime(self):
        # Actually tests for mtime in future
        self.databroker_meta.filebroker.mtime = time.time()
        self.metacache.push_to_cache("a", "b")
        self.databroker_meta.filebroker.mtime = time.time() - 1.1
        self.assertFalse(self.metacache._is_outdated("a"))