12 return bytearray(random.getrandbits(8) for _ in xrange(n))
15 class CacheTestThread(threading.Thread):
16 def __init__(self, dir):
17 super(CacheTestThread, self).__init__()
21 c = arvados.cache.SafeHTTPCache(self._dir)
22 url = 'http://example.com/foo'
24 data_in = _random(128)
25 data_in = md5.new(data_in).hexdigest() + "\n" + str(data_in)
28 digest, content = data_out.split("\n", 1)
29 self.ok = (digest == md5.new(content).hexdigest())
32 class CacheTest(unittest.TestCase):
34 self._dir = tempfile.mkdtemp()
37 shutil.rmtree(self._dir)
39 def test_cache_crud(self):
40 c = arvados.cache.SafeHTTPCache(self._dir)
41 url = 'https://example.com/foo?bar=baz'
44 self.assertEqual(None, c.get(url))
47 self.assertEqual(data1, c.get(url))
49 self.assertEqual(None, c.get(url))
52 self.assertEqual(data2, c.get(url))
54 def test_cache_threads(self):
57 t = CacheTestThread(dir=self._dir)