def __init__(self, filestore=UNSET, show_file_preview=True, show_download_link=False, show_image_thumbnail=False, url_base=None, css_class=None, image_thumbnail_default=None, show_remove_checkbox=True, url_ident_factory=None, thumbnail_size="20x20"): """ :arg filestore: filestore for temporary files :arg show_image_thumbnail: a boolean that, if set, will include an image thumbnail with the widget :arg css_class: extra css classes to apply to the widget :arg image_thumbnail_default: a default url to XXX image_thumbnail_default -> default_image XXX allow_clear -> allow_delete XXX url_ident_factory -> filestore_key_factory """ # Setup defaults. if filestore is UNSET: filestore = CachedTempFilestore() if url_base is None: url_base = '/filehandler' if url_ident_factory is None: url_ident_factory = lambda i: i.filename # Initialise instance state Widget.__init__(self) self.filestore = filestore self.show_image_thumbnail = show_image_thumbnail self.image_thumbnail_default = image_thumbnail_default self.url_base = url_base self.show_download_link = show_download_link self.show_file_preview = show_file_preview self.url_ident_factory = url_ident_factory self.show_remove_checkbox = show_remove_checkbox self.thumbnail_size = thumbnail_size
def setUp(self): self.dirname = tempfile.mkdtemp() self.store = CachedTempFilestore( FileSystemHeaderedFilestore(self.dirname))
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')
def setUp(self): self.dirname = tempfile.mkdtemp() self.store = CachedTempFilestore(FileSystemHeaderedFilestore(self.dirname))
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')