def test_fetch_from_cache(self): # When a build is in the cache, we return that build from the cache. cache_key = buildbot.cache_key_for_build('foo', 'bar', 1) self.cache.set(cache_key, {'men': 'at work'}) build, source = buildbot.fetch_build_json(self.cache, 'foo', 'bar', 1) self.assertEqual(build, {'men': 'at work'}) self.assertEqual(source, 'disk cache')
def test_ignore_expired_cache(self): # When a build is in the cache but expired, we hit the network instead. cache_key = buildbot.cache_key_for_build('foo', 'bar', 1) self.cache.set(cache_key, {'men': 'at work'}) def _mock_key_age(cache_key): return datetime.datetime.now() - datetime.timedelta(seconds=121) _real_key_age = self.cache.key_age def _mock_fetch_and_cache_build(cache, url, cache_key): return {'I come': 'from a land down under'} _real_fetch_and_cache_build = buildbot.fetch_and_cache_build try: self.cache.key_age = _mock_key_age buildbot.fetch_and_cache_build = _mock_fetch_and_cache_build build, source = buildbot.fetch_build_json(self.cache, 'foo', 'bar', 1) self.assertEqual(build, {'I come': 'from a land down under'}) self.assertEqual(source, 'chrome-build-extract') finally: self.cache.key_age = _real_key_age buildbot.fetch_and_cache_build = _real_fetch_and_cache_build
def cache_set(master_url, builder, build, value): key = buildbot.cache_key_for_build(master_url, builder, build) self.cache.set(key, value)
def test_cache_key_for_build(self): key = buildbot.cache_key_for_build('master', 'builder', 10) self.assertEquals(key, 'master/builder/10.json')