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")
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")
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, )
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)
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)
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"])
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)
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")
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, )