示例#1
0
 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')
示例#2
0
 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')
示例#3
0
 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)
示例#4
0
 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())))
示例#5
0
 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)