def test_get_file_name_scene_asset_instance(self):
        self.generate_fixture_scene_asset_instance()
        file_name = file_tree_service.get_instance_file_name(
            self.asset_instance.serialize(),
            self.scene.serialize(),
            output_type=self.output_type_cache,
            task_type=self.task_type_animation.serialize(),
            name="main",
            revision=3)

        self.assertEqual(
            file_name, "cosmos_landromat_s01_sc01_animation_cache_main_"
            "tree_0001_v003")
Exemple #2
0
    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 test_get_file_name_asset_asset_instance(self):
        self.generate_fixture_asset_types()
        self.generate_fixture_asset_character()
        self.generate_fixture_asset_asset_instance()
        file_name = file_tree_service.get_instance_file_name(
            self.asset_instance.serialize(),
            self.asset.serialize(),
            output_type=self.output_type_materials,
            task_type=self.task_type.serialize(),
            name="main",
            revision=3)

        self.assertEqual(
            file_name, "cosmos_landromat_props_tree_shaders_materials_main_"
            "rabbit_0001_v003")
Exemple #4
0
 def test_get_file_name_shot_asset_instance(self):
     self.generate_fixture_shot_asset_instance(
         asset=self.entity,
         shot=self.shot
     )
     file_name = file_tree_service.get_instance_file_name(
         self.asset_instance.serialize(),
         output_type=self.output_type_cache,
         task_type=self.task_type_animation.serialize(),
         name="main",
         revision=3
     )
     self.assertEquals(
         file_name,
         "cosmos_landromat_s01_p01_animation_cache_main_props_tree_instance_0001_v003"
     )
Exemple #5
0
    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
Exemple #6
0
    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