def test_select(self): with deepstar_path(): VideoModel().insert('test1', 'test2') FrameSetModel().insert(1) transform_set_model = TransformSetModel() transform_set_model.insert('test', 1) result = transform_set_model.select(1) self.assertEqual(result, (1, 'test', 1, None))
def test_fk_transform_sets_on_delete_cascade(self): with deepstar_path(): FrameSetModel().insert(None) FrameModel().insert(1, 0) transform_set_model = TransformSetModel() transform_set_model.insert('test', 1) transform_model = TransformModel() transform_model.insert(1, 1, '{}', 0) self.assertEqual(transform_model.list(1), [(1, 1, 1, '{}', 0)]) transform_set_model.delete(1) self.assertIsNone(transform_model.list(1))
def test_list(self): with deepstar_path(): VideoModel().insert('test1', 'test2') FrameSetModel().insert(1) transform_set_model = TransformSetModel() transform_set_model.insert('test', 1) transform_set_model.insert('test', 1) transform_set_model.insert('test', 1) result = transform_set_model.list() self.assertEqual(len(result), 3) self.assertEqual(result[0], (1, 'test', 1, None)) self.assertEqual(result[1], (2, 'test', 1, None)) self.assertEqual(result[2], (3, 'test', 1, None))
def select_merge(self, transform_set_ids, name='merge', fk_frame_sets=None, fk_prev_transform_sets=None, rejected=False): """ This method merges multiple transform sets into one transform set. :param list(int) transform_set_ids: The transform set IDs. :param str name: The merged transform set's name. The default value is 'merge'. :param int fk_frame_sets: The frame set ID to which this transform set corresponds (if any). The default value is None. :param int fk_prev_transform_sets: The transform set ID the previous transform set in this series of transformations. The default value is None. :param bool rejected: True if should include rejected else False if should not. The default value is False. :raises: CommandLineRouteHandlerError :rtype: None """ transform_set_model = TransformSetModel() for transform_set_id in transform_set_ids: result = transform_set_model.select(transform_set_id) if result is None: raise CommandLineRouteHandlerError( f'Transform set with ID {transform_set_id:08d} not found') transform_set_id = transform_set_model.insert(name, fk_frame_sets, fk_prev_transform_sets) p1 = TransformSetSubDir.path(transform_set_id) os.makedirs(p1) transform_model = TransformModel() length = int(os.environ.get('MODEL_LIST_LENGTH', '100')) for transform_set_id_ in transform_set_ids: offset = 0 p2 = TransformSetSubDir.path(transform_set_id_) while True: transforms = transform_model.list(transform_set_id_, length=length, offset=offset, rejected=rejected) if not transforms: break for transform in transforms: transform_id = transform_model.insert( transform_set_id, transform[2], transform[3], transform[4]) p3 = TransformFile.path(p2, transform[0], 'jpg') p4 = TransformFile.path(p1, transform_id, 'jpg') shutil.copy(p3, p4) debug( f'Transform with ID {transform[0]:08d} at {p3} ' f'merged as ID {transform_id:08d} at {p4}', 4) offset += length result = transform_set_model.select(transform_set_id) debug( f'transform_set_id={result[0]}, name={result[1]}, ' f'fk_frame_sets={result[2]}, fk_prev_transform_sets={result[3]}', 3)