class TestCachedTempFilestore(unittest.TestCase): def setUp(self): self.dirname = tempfile.mkdtemp() self.store = CachedTempFilestore( FileSystemHeaderedFilestore(self.dirname)) def tearDown(self): shutil.rmtree(self.dirname) def test_put(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) assert file( os.path.join(self.dirname, 'foo'), 'rb').read() == 'Cache-Tag: 1\nContent-Type: text/plain\n\nbar' def test_put_noheaders(self): self.store.put('foo', StringIO('bar'), '1') self.assertEqual( open(os.path.join(self.dirname, 'foo'), 'rb').read(), 'Cache-Tag: 1\n\nbar') def test_get(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo') try: assert cache_tag == '1' assert headers == [('Content-Type', 'text/plain')] assert f.read() == 'bar' finally: f.close() def test_get_cache_hit(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo', cache_tag='1') assert cache_tag == '1' assert headers == [('Content-Type', 'text/plain')] assert f is None def test_get_cache_miss(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo', cache_tag='miss') try: assert cache_tag == '1' assert headers == [('Content-Type', 'text/plain')] assert f.read() == 'bar' finally: f.close() def test_missing(self): self.assertRaises(KeyError, self.store.get, 'not_found') def test_none_cache_tag(self): self.store.put('foo', StringIO('bar'), None, [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo', cache_tag='None') try: assert cache_tag is None assert headers == [('Content-Type', 'text/plain')] assert f finally: f.close() (cache_tag, content_type, f) = self.store.get('foo', cache_tag='') try: assert cache_tag is None assert headers == [('Content-Type', 'text/plain')] assert f finally: f.close() def test_delete(self): self.assertRaises(OSError, self.store.delete, 'not_found')
class TestCachedTempFilestore(unittest.TestCase): def setUp(self): self.dirname = tempfile.mkdtemp() self.store = CachedTempFilestore(FileSystemHeaderedFilestore(self.dirname)) def tearDown(self): shutil.rmtree(self.dirname) def test_put(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) assert file(os.path.join(self.dirname, 'foo'), 'rb').read() == 'Cache-Tag: 1\nContent-Type: text/plain\n\nbar' def test_put_noheaders(self): self.store.put('foo', StringIO('bar'), '1') self.assertEqual(open(os.path.join(self.dirname, 'foo'), 'rb').read(), 'Cache-Tag: 1\n\nbar') def test_get(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo') try: assert cache_tag == '1' assert headers == [('Content-Type', 'text/plain')] assert f.read() == 'bar' finally: f.close() def test_get_cache_hit(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo', cache_tag='1') assert cache_tag == '1' assert headers == [('Content-Type', 'text/plain')] assert f is None def test_get_cache_miss(self): self.store.put('foo', StringIO('bar'), '1', [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo', cache_tag='miss') try: assert cache_tag == '1' assert headers == [('Content-Type', 'text/plain')] assert f.read() == 'bar' finally: f.close() def test_missing(self): self.assertRaises(KeyError, self.store.get, 'not_found') def test_none_cache_tag(self): self.store.put('foo', StringIO('bar'), None, [('Content-Type', 'text/plain')]) (cache_tag, headers, f) = self.store.get('foo', cache_tag='None') try: assert cache_tag is None assert headers == [('Content-Type', 'text/plain')] assert f finally: f.close() (cache_tag, content_type, f) = self.store.get('foo', cache_tag='') try: assert cache_tag is None assert headers == [('Content-Type', 'text/plain')] assert f finally: f.close() def test_delete(self): self.assertRaises(OSError, self.store.delete, 'not_found')