Ejemplo n.º 1
0
 def test_add_asset_metadata_descriptor(self):
     descriptor = projects_service.add_metadata_descriptor(
         self.project.id, "Asset", "Is Outdoor", [])
     self.assertIsNotNone(MetadataDescriptor.get(descriptor["id"]))
     descriptor = projects_service.add_metadata_descriptor(
         self.project.id, "Asset", "Contractor",
         ["contractor 1", "contractor 2"])
     descriptors = projects_service.get_metadata_descriptors(
         self.project.id)
     self.assertEqual(len(descriptors), 2)
     self.assertEqual(descriptors[0]["id"], descriptor["id"])
     self.assertEqual(descriptors[0]["field_name"], "contractor")
     self.assertEqual(descriptors[1]["field_name"], "is_outdoor")
Ejemplo n.º 2
0
 def test_get_metadata_columns(self):
     projects_service.add_metadata_descriptor(self.project_id, "asset",
                                              "test client", [], True)
     projects_service.add_metadata_descriptor(self.project_id, "asset",
                                              "test", [], False)
     self.generate_fixture_user_client()
     self.log_in_client()
     projects_service.add_team_member(self.project_id,
                                      self.user_client["id"])
     context = self.get("/data/user/context")
     self.assertEqual(len(context["projects"]), 1)
     self.assertEqual(len(context["projects"][0]["descriptors"]), 1)
     self.assertEqual(context["projects"][0]["descriptors"][0]["name"],
                      "test client")
Ejemplo n.º 3
0
    def post(self, project_id):
        args = self.get_args(
            [
                ("entity_type", "Asset", False),
                ("name", "", True),
                ("for_client", "False", False),
                ("choices", [], False, "append"),
            ]
        )
        permissions.check_admin_permissions()

        args["for_client"] = args["for_client"] == "True"

        if args["entity_type"] not in ["Asset", "Shot"]:
            raise WrongParameterException(
                "Wrong entity type. Please select Asset or Shot."
            )

        if len(args["name"]) == 0:
            raise WrongParameterException("Name cannot be empty.")

        return (
            projects_service.add_metadata_descriptor(
                project_id,
                args["entity_type"],
                args["name"],
                args["choices"],
                args["for_client"]
            ),
            201,
        )
Ejemplo n.º 4
0
 def test_unallowed_delete_metadata_descriptor(self):
     descriptor = projects_service.add_metadata_descriptor(
         self.project_id, "Asset", "Contractor", [])
     self.generate_fixture_user_manager()
     self.log_in_manager()
     self.delete(
         "data/projects/%s/metadata-descriptors/%s" %
         (self.project_id, descriptor["id"]), 403)
Ejemplo n.º 5
0
 def test_unallowed_update_metadata_descriptor(self):
     descriptor = projects_service.add_metadata_descriptor(
         self.project_id, "Asset", "Contractor", [], False)
     self.generate_fixture_user_manager()
     self.log_in_manager()
     self.put(
         "data/projects/%s/metadata-descriptors/%s" %
         (self.project_id, descriptor["id"]), {"name": "Team"}, 403)
Ejemplo n.º 6
0
 def test_delete_metadata_descriptor(self):
     descriptor = projects_service.add_metadata_descriptor(
         self.project_id, "Asset", "Contractor", [])
     self.asset.update({"data": {"contractor": "contractor 1"}})
     self.delete("data/projects/%s/metadata-descriptors/%s" %
                 (self.project_id, descriptor["id"]))
     descriptors = self.get("data/projects/%s/metadata-descriptors" %
                            self.project_id)
     self.assertEqual(len(descriptors), 0)
     asset = self.get("data/assets/%s" % self.asset_id)
     self.assertFalse("contractor" in asset["data"])
Ejemplo n.º 7
0
    def test_add_delete_metadata_descriptor(self):
        asset = self.generate_fixture_asset_type()
        asset = self.generate_fixture_asset()
        descriptor = projects_service.add_metadata_descriptor(
            self.project.id, "Asset", "Contractor", [], False)
        asset.update({"data": {"contractor": "contractor 1"}})
        self.assertTrue("contractor" in asset.data)

        projects_service.remove_metadata_descriptor(descriptor["id"])
        descriptors = projects_service.get_metadata_descriptors(
            self.project.id)
        self.assertEqual(len(descriptors), 0)
        asset = Entity.get(asset.id)
        self.assertFalse("contractor" in asset.data)
Ejemplo n.º 8
0
 def test_update_metadata_descriptor(self):
     asset = self.generate_fixture_asset_type()
     asset = self.generate_fixture_asset()
     descriptor = projects_service.add_metadata_descriptor(
         self.project.id, "Asset", "Contractor", [])
     asset.update({"data": {"contractor": "contractor 1"}})
     self.assertTrue("contractor" in asset.data)
     projects_service.update_metadata_descriptor(descriptor["id"],
                                                 {"name": "Team"})
     descriptors = projects_service.get_metadata_descriptors(
         self.project.id)
     self.assertEqual(len(descriptors), 1)
     asset = Entity.get(asset.id)
     self.assertEqual(asset.data.get("team"), "contractor 1")
Ejemplo n.º 9
0
    def post(self, project_id):
        """
        Create a new metadata descriptor
        ---
        description: It serves to describe extra fields listed in the data attribute of entities.
        tags:
          - Projects
        parameters:
          - in: path
            name: project_id
            required: true
            schema:
              type: UUID
              example: 5dc235ec-125e-4ba5-b1db-604d4babc315
        responses:
            201:
              description: Create a new metadata descriptor
        """
        args = self.get_args([
            ("entity_type", "Asset", False),
            ("name", "", True),
            ("for_client", "False", False),
            ("choices", [], False, "append"),
            ("departments", [], False, "append"),
        ])

        user_service.check_all_departments_access(project_id,
                                                  args["departments"])

        args["for_client"] = args["for_client"] == "True"

        if args["entity_type"] not in ["Asset", "Shot", "Edit"]:
            raise WrongParameterException(
                "Wrong entity type. Please select Asset, Shot or Edit.")

        if len(args["name"]) == 0:
            raise WrongParameterException("Name cannot be empty.")

        return (
            projects_service.add_metadata_descriptor(
                project_id,
                args["entity_type"],
                args["name"],
                args["choices"],
                args["for_client"],
                args["departments"],
            ),
            201,
        )