def test_scan_and_scan_again(self) -> None: '''Scan a folder structure to store images, then scan again and test if they are all known.''' cnt = 0 for file_path, progress in scan_images(self.db, self.src, skip_thumbnail_folders=True): cnt += 1 self.assertEqual(len(EXPECTED_IMAGES), cnt) for file_path, progress in scan_images(self.db, self.src, skip_thumbnail_folders=True): raise Exception('should not happen')
def test_scan_and_scan_subfolder_again(self) -> None: '''Scan a folder structure to store images, then scan a subfolder of it again and test if all contained images are known. This essentially simulates moving of the subfolder to the top of the source folder structure.''' cnt = 0 for file_path, progress in scan_images(self.db, self.src, skip_thumbnail_folders=True): cnt += 1 self.assertEqual(len(EXPECTED_IMAGES), cnt) for file_path, progress in scan_images(self.db, self.src / 'folder2', skip_thumbnail_folders=True): raise Exception('images in subfolder not recognized')
def test_getting_image_id(self) -> None: cnt = 0 for file_path, progress in scan_images(self.db, self.src, skip_thumbnail_folders=True): cnt += 1 self.assertEqual(len(EXPECTED_IMAGES), cnt) recgn = self.db.get_recognizer() image_id = image_id_from_string(str(self.src / 'img_0002.jpg'), self.src, recgn) self.assertEqual(1, image_id) image_id = image_id_from_string('I002', self.src, recgn) self.assertEqual(2, image_id)
def test_purge(self) -> None: '''Scan a folder structure to store images, then chose other folder as base and purge.''' cnt = 0 for file_path, progress in scan_images(self.db, self.src, skip_thumbnail_folders=True): cnt += 1 self.assertEqual(len(EXPECTED_IMAGES), cnt) cnt_purged = 0 for descr in purge_images(self.db, self.src / 'folder1'): cnt_purged += 1 self.assertEqual(cnt, cnt_purged) self.assertEqual(0, len(list(self.db.load_all_images())))
def test_thumbnail_update(self) -> None: '''Test creating thumbnails for all images.''' cnt = 0 for file_path, progress in scan_images(self.db, self.src, skip_thumbnail_folders=True): cnt += 1 self.assertEqual(len(EXPECTED_IMAGES), cnt) update_all_thumbnails(self.db, self.src) with self.db.db as conn: cnt = conn.execute('SELECT count(*) FROM thumbnails;') \ .fetchone()[0] self.assertEqual(len(EXPECTED_IMAGES), cnt) for row in conn.execute('SELECT * FROM thumbnails;'): for field in row: self.assertIsNotNone(field)