def test_put_thumbnail(self): uri = 'http://example.com' tmp = vignette.create_temp('large') shutil.copyfile(self.filename, tmp) vignette.put_thumbnail(uri, 'large', tmp, mtime=42) assert vignette.try_get_thumbnail(uri, 'large', mtime=42) self.assertIsNone(vignette.try_get_thumbnail(uri, 'large', mtime=1))
def test_mtime_validity(self): dest = vignette.get_thumbnail(self.filename, 'large') assert dest os.utime(self.filename, (0, 0)) self.assertIsNone(vignette.try_get_thumbnail(self.filename, 'large')) assert os.path.isfile(dest) self.assertEqual(dest, vignette.get_thumbnail(self.filename, 'large')) self.assertEqual(dest, vignette.try_get_thumbnail(self.filename, 'large'))
def test_basic(self): dest = vignette.build_thumbnail_path(self.filename, 'large') assert dest self.assertIsNone(vignette.try_get_thumbnail(self.filename, 'large')) assert not os.path.exists(dest) self.assertEqual(dest, vignette.get_thumbnail(self.filename, 'large')) assert os.path.isfile(dest) self.assertEqual(dest, vignette.try_get_thumbnail(self.filename, 'large'))
def store_thumbnail(obj): if vignette is None: return url = find_url(obj) if not url: return try: ts = mktime(obj.date.timetuple()) except AttributeError: return path = vignette.try_get_thumbnail(url, mtime=ts) if path: # thumbnail already exists return qimg = load_qimg(obj, 'data') if qimg.isNull(): qimg = load_qimg(obj, 'thumbnail', 'data') if qimg.isNull(): return format, size = ideal_thumb_size((qimg.width(), qimg.height())) if size: qimg = qimg.scaled(QSize(size, size), Qt.KeepAspectRatio, Qt.SmoothTransformation) path = vignette.create_temp(format) qimg.save(path) vignette.put_thumbnail(url, format, path, mtime=ts)
def test_dir_subdir(src_path, dst_path): othumb = vignette.get_thumbnail(str(src_path / '1.png')) check_call([ './mv-with-thumb', str(src_path), str(dst_path), ]) assert not Path(othumb).exists() assert dst_path.joinpath('foo/1.png').exists() assert vignette.try_get_thumbnail(str(dst_path.joinpath('foo/1.png')))
def test_file_file(src_path, dst_path): othumb = vignette.get_thumbnail(str(src_path / '1.png'), 'large') assert Path(othumb).exists() assert src_path.joinpath('1.png').exists() check_call([ './mv-with-thumb', str(src_path / '1.png'), str(dst_path / '2.png'), ]) assert not src_path.joinpath('1.png').exists() assert dst_path.joinpath('2.png').exists() assert not Path(othumb).exists() assert vignette.try_get_thumbnail(str(dst_path / '2.png'))
def test_dir_name(src_path, dst_path): othumb = vignette.get_thumbnail(str(src_path / '1.png')) assert Path(othumb).exists() assert src_path.joinpath('1.png').exists() check_call([ './mv-with-thumb', str(src_path), str(dst_path / 'quack'), ]) assert not src_path.exists() assert dst_path.joinpath('quack').exists() assert dst_path.joinpath('quack/1.png').exists() assert not Path(othumb).exists() assert vignette.try_get_thumbnail(str(dst_path / 'quack/1.png'))
def try_get_thumbnail(obj): if vignette is None: return url = find_url(obj) if not url: return try: ts = mktime(obj.date.timetuple()) except AttributeError: return path = vignette.try_get_thumbnail(url, mtime=ts) if path: return QVariant(QIcon(QPixmap(path)))
def test_multisize(self): dest = vignette.get_thumbnail(self.filename, 'large') assert dest self.assertEqual(dest, vignette.try_get_thumbnail(self.filename, 'large')) self.assertIsNone(vignette.try_get_thumbnail(self.filename, 'normal')) self.assertEqual(dest, vignette.try_get_thumbnail(self.filename)) os.remove(dest) dest = vignette.get_thumbnail(self.filename, 'normal') assert dest self.assertEqual(dest, vignette.try_get_thumbnail(self.filename, 'normal')) self.assertIsNone(vignette.try_get_thumbnail(self.filename, 'large')) self.assertEqual(dest, vignette.try_get_thumbnail(self.filename))
def test_direct_thumbnail(self): dest = vignette.get_thumbnail(self.filename, 'large') assert dest assert os.path.isfile(dest) self.assertEqual(dest, vignette.try_get_thumbnail(dest, 'large'))