def test_get_folder_path_representation(self): self.generate_fixture_scene_asset_instance() path = file_tree_service.get_instance_folder_path( self.asset_instance.serialize(), self.scene.serialize(), task_type=self.task_type_animation.serialize(), output_type=self.output_type_cache, representation="abc") self.assertEqual( path, "/simple/productions/export/cosmos_landromat/scene/s01/sc01/" "animation/cache/props/tree/instance_0001/abc")
def test_get_folder_path_asset_asset_instance(self): self.generate_fixture_asset_types() self.generate_fixture_asset_character() self.generate_fixture_asset_asset_instance() path = file_tree_service.get_instance_folder_path( self.asset_instance.serialize(), self.asset.serialize(), task_type=self.task_type.serialize(), output_type=self.output_type_materials, representation="ml") self.assertEqual( path, "/simple/productions/export/cosmos_landromat/assets/props/tree/" "shaders/materials/character/rabbit/instance_0001/ml")
def add_path_info( self, output_file, mode, asset_instance, temporal_entity, output_type, task_type=None, name="main", extension="", representation="", nb_elements=1, separator="/", ): folder_path = file_tree_service.get_instance_folder_path( asset_instance, temporal_entity, mode=mode, output_type=output_type, revision=output_file["revision"], task_type=task_type, representation=representation, name=name, sep=separator, ) file_name = file_tree_service.get_instance_file_name( asset_instance, temporal_entity, mode=mode, revision=output_file["revision"], output_type=output_type, task_type=task_type, name=name, ) output_file = files_service.update_output_file( output_file["id"], { "path": "%s%s%s%s" % (folder_path, separator, file_name, extension) }, ) output_file.update({ "folder_path": folder_path, "file_name": file_name }) return output_file
def post(self, asset_instance_id, temporal_entity_id): args = self.get_arguments() try: asset_instance = assets_service.get_asset_instance( asset_instance_id) entity = entities_service.get_entity(temporal_entity_id) asset = assets_service.get_asset(asset_instance["asset_id"]) output_type = files_service.get_output_type(args["output_type_id"]) task_type = tasks_service.get_task_type(args["task_type_id"]) user_service.check_project_access(asset["project_id"]) user_service.check_entity_access(asset["id"]) folder_path = file_tree_service.get_instance_folder_path( asset_instance, entity, output_type=output_type, task_type=task_type, mode=args["mode"], name=args["name"], representation=args["representation"], revision=args["revision"], sep=args["separator"], ) file_name = file_tree_service.get_instance_file_name( asset_instance, entity, output_type=output_type, task_type=task_type, mode=args["mode"], name=args["name"], revision=args["revision"], ) except MalformedFileTreeException as exception: return ( { "message": str(exception), "received_data": request.json }, 400, ) return {"folder_path": folder_path, "file_name": file_name}, 200
def post(self, asset_instance_id): args = self.get_arguments() try: asset_instance = assets_service.get_asset_instance( asset_instance_id) asset = assets_service.get_asset(asset_instance["asset_id"]) output_type = files_service.get_output_type(args["output_type_id"]) task_type = tasks_service.get_task_type(args["task_type_id"]) if not permissions.has_manager_permissions(): user_service.check_has_task_related(asset["project_id"]) folder_path = file_tree_service.get_instance_folder_path( asset_instance, output_type=output_type, task_type=task_type, mode=args["mode"], name=args["name"], representation=args["representation"], revision=args["revision"], sep=args["separator"] ) file_name = file_tree_service.get_instance_file_name( asset_instance, output_type=output_type, task_type=task_type, mode=args["mode"], name=args["name"], revision=args["revision"] ) except MalformedFileTreeException as e: current_app.logger.error(e) return { "error": "Tree is not properly written, check modes and variables", "received_data": request.json, }, 400 return {"path": folder_path, "name": file_name}, 200