Пример #1
0
 def setUp(self):
     super(FileTreeTestCase, self).setUp()
     self.generate_fixture_project_status()
     self.generate_fixture_project()
     self.generate_fixture_project_standard()
     self.generate_fixture_entity_type()
     self.generate_fixture_entity()
     self.generate_fixture_entity_standard()
     self.generate_fixture_episode()
     self.generate_fixture_sequence()
     self.generate_fixture_shot()
     self.generate_fixture_sequence_standard()
     self.generate_fixture_shot_standard()
     self.generate_fixture_person()
     self.generate_fixture_department()
     self.generate_fixture_task_type()
     self.generate_fixture_task_status()
     self.generate_fixture_assigner()
     self.generate_fixture_task()
     self.generate_fixture_task_standard()
     self.generate_fixture_shot_task()
     self.generate_fixture_shot_task_standard()
     self.sequence_standard = Entity(name='Seq1',
                                     project_id=self.project.id,
                                     entity_type_id=self.sequence_type.id)
     self.sequence_standard.save()
     self.shot_standard = Entity(name='P001',
                                 project_id=self.project_standard.id,
                                 entity_type_id=self.shot_type.id,
                                 parent_id=self.sequence_standard.id)
     self.shot_standard.save()
Пример #2
0
    def import_entry(self, data):
        sequence = Entity.get_by(shotgun_id=data["shotgun_id"],
                                 entity_type_id=self.sequence_type["id"])

        if sequence is None:
            sequence = Entity(**data)
            sequence.save()
            current_app.logger.info("Sequence created: %s" % sequence)

        else:
            # Little hack to avoid integrity errors due to
            # duplicated data.
            similar_sequence = Entity.get_by(
                name=data["name"],
                parent_id=data["parent_id"],
                project_id=data["project_id"],
                entity_type_id=self.sequence_type["id"])

            if similar_sequence is None:
                sequence.update(data)
                sequence.save()
            else:
                sequence.update({
                    "description": data["description"],
                    "shotgun_id": data["shotgun_id"]
                })
                sequence.save()
            current_app.logger.info("Sequence updated: %s" % sequence)

        return sequence
Пример #3
0
    def import_entry(self, data):
        sequence = Entity.get_by(
            shotgun_id=data["shotgun_id"],
            entity_type_id=self.sequence_type["id"],
        )

        similar_sequence = Entity.get_by(
            name=data["name"],
            parent_id=data["parent_id"],
            project_id=data["project_id"],
            entity_type_id=self.sequence_type["id"],
        )

        if sequence is None and similar_sequence is None:
            sequence = Entity(**data)
            sequence.save()
            current_app.logger.info("Sequence created: %s" % sequence)

        elif sequence is not None:
            if similar_sequence is None:
                sequence.update(data)
                sequence.save()
            else:
                sequence.update(
                    {
                        "description": data["description"],
                        "shotgun_id": data["shotgun_id"],
                    }
                )
                sequence.save()
            current_app.logger.info("Sequence updated: %s" % sequence)

        return sequence
Пример #4
0
 def generate_fixture_shot(self):
     self.shot = Entity(name="P01",
                        description="Description Shot 01",
                        data={
                            "fps": 25,
                            "frame_in": 0,
                            "frame_out": 100
                        },
                        project_id=self.project.id,
                        entity_type_id=self.shot_type.id,
                        parent_id=self.sequence.id)
     self.shot.save()
     self.shot_noseq = Entity(name="P01NOSEQ",
                              project_id=self.project.id,
                              entity_type_id=self.shot_type.id)
     self.shot_noseq.save()
Пример #5
0
 def generate_fixture_entity_character(self):
     self.entity_character = Entity(
         name="Rabbit",
         description="Main character",
         project_id=self.project.id,
         entity_type_id=self.entity_type_character.id)
     self.entity_character.save()
 def setUp(self):
     super(FileTreeTestCase, self).setUp()
     self.generate_fixture_project_status()
     self.generate_fixture_project()
     self.generate_fixture_project_standard()
     self.generate_fixture_asset_type()
     self.generate_fixture_asset()
     self.generate_fixture_episode()
     self.generate_fixture_sequence()
     self.generate_fixture_shot()
     self.generate_fixture_scene()
     self.generate_fixture_sequence_standard()
     self.generate_fixture_shot_standard()
     self.generate_fixture_person()
     self.generate_fixture_department()
     self.generate_fixture_task_type()
     self.generate_fixture_task_status()
     self.generate_fixture_assigner()
     self.generate_fixture_task()
     self.generate_fixture_shot_task()
     self.generate_fixture_shot_task_standard()
     self.generate_fixture_software()
     self.asset_standard = Entity(
         name='Car',
         project_id=self.project_standard.id,
         entity_type_id=self.asset_type.id
     )
     self.asset_standard.save()
     self.sequence_standard = Entity(
         name='Seq1',
         project_id=self.project.id,
         entity_type_id=self.sequence_type.id
     )
     self.sequence_standard.save()
     self.shot_standard = Entity(
         name='P001',
         project_id=self.project_standard.id,
         entity_type_id=self.shot_type.id,
         parent_id=self.sequence_standard.id
     )
     self.shot_standard.save()
     self.output_type_materials = files_service.get_or_create_output_type(
         "Materials")
     self.output_type_cache = files_service.get_or_create_output_type(
         "Cache")
     self.output_type_image = files_service.get_or_create_output_type(
         "Images")
Пример #7
0
def get_or_create_episode(project_id, name):
    episode_type = get_episode_type()
    episode = Entity.get_by(entity_type_id=episode_type["id"],
                            project_id=project_id,
                            name=name)
    if episode is None:
        episode = Entity(entity_type_id=episode_type["id"],
                         project_id=project_id,
                         name=name)
        episode.save()
    return episode.serialize()
Пример #8
0
    def generate_fixture_sequence(self):
        if hasattr(self, "episode"):
            episode_id = self.episode.id
        else:
            episode_id = None

        self.sequence = Entity(name="S01",
                               project_id=self.project.id,
                               entity_type_id=self.sequence_type.id,
                               parent_id=episode_id)
        self.sequence.save()
Пример #9
0
 def test_get_project_and_type_assets(self):
     entity_type = EntityType(name="VFX")
     entity_type.save()
     entity = Entity(name="Smoke",
                     entity_type_id=entity_type.id,
                     project_id=self.project.id)
     entity.save()
     path_ids = (self.project.id, self.entity_type.id)
     path = "data/projects/%s/asset_types/%s/assets" % path_ids
     assets = self.get(path)
     self.assertEquals(len(assets), 1)
     self.assertDictEqual(assets[0], self.entity_dict)
Пример #10
0
 def generate_fixture_shot_standard(self):
     self.shot_standard = Entity(name="P01",
                                 description="Description Shot 01",
                                 data={
                                     "fps": 25,
                                     "frame_in": 0,
                                     "frame_out": 100
                                 },
                                 project_id=self.project_standard.id,
                                 entity_type_id=self.shot_type.id,
                                 parent_id=self.sequence_standard.id)
     self.shot_standard.save()
Пример #11
0
def get_or_create_sequence(project_id, episode_id, name):
    sequence_type = get_sequence_type()
    sequence = Entity.get_by(entity_type_id=sequence_type["id"],
                             parent_id=episode_id,
                             project_id=project_id,
                             name=name)
    if sequence is None:
        sequence = Entity(entity_type_id=sequence_type["id"],
                          parent_id=episode_id,
                          project_id=project_id,
                          name=name)
        sequence.save()
    return sequence.serialize()
Пример #12
0
def get_or_create_episode(project_id, name):
    """
    Retrieve episode matching given project and name or create it.
    """
    episode_type = get_episode_type()
    episode = Entity.get_by(
        entity_type_id=episode_type["id"], project_id=project_id, name=name
    )
    if episode is None:
        episode = Entity(
            entity_type_id=episode_type["id"], project_id=project_id, name=name
        )
        episode.save()
    return episode.serialize()
Пример #13
0
def create_asset(project, asset_type, name, description):
    name = name.capitalize()
    asset = Entity(project_id=project.id,
                   entity_type_id=asset_type.id,
                   name=name,
                   description=description)
    asset.save()
    events.emit(
        "asset:new", {
            "asset": asset.serialize(),
            "asset_type": asset_type.serialize(),
            "project": project.serialize()
        })
    return asset
Пример #14
0
    def save_entity(self, data):
        entity = None
        entities = asset_info.get_assets({"shotgun_id": data["shotgun_id"]})
        if len(entities) > 0:
            entity = entities[0]

        if entity is None:
            entity = Entity(**data)
            entity.save()
            current_app.logger.info("Entity created: %s" % entity)
        else:
            entity.update(data)
            current_app.logger.info("Entity updated: %s" % entity)

        return entity
Пример #15
0
    def import_entry(self, data):
        sequence = Entity.get_by(shotgun_id=data["shotgun_id"],
                                 entity_type_id=self.sequence_type["id"])

        if sequence is None:
            sequence = Entity(**data)
            sequence.save()
            current_app.logger.info("Sequence created: %s" % sequence)

        else:
            sequence.update(data)
            sequence.save()
            current_app.logger.info("Sequence updated: %s" % sequence)

        return sequence
Пример #16
0
    def import_entry(self, data):
        episode = Entity.get_by(shotgun_id=data["shotgun_id"],
                                entity_type_id=self.episode_type["id"])

        if episode is None:
            episode = Entity(**data)
            episode.save()
            current_app.logger.info("Episode created: %s" % episode)

        else:
            episode.update(data)
            episode.save()
            current_app.logger.info("Episode updated: %s" % episode)

        return episode
Пример #17
0
 def save_entity(self, data):
     entity = None
     try:
         entity = assets_service.get_raw_asset_by_shotgun_id(
             data["shotgun_id"])
         entity.update(data)
         current_app.logger.info("Entity updated: %s" % entity)
     except AssetNotFoundException:
         if data.get("entity_type_id", None) is not None:
             entity = Entity(**data)
             entity.save()
             current_app.logger.info("Entity created: %s" % entity)
         else:
             current_app.logger.info("Entity ignored: %s" % data["name"])
     return entity
Пример #18
0
    def import_entry(self, data):
        scene = Entity.get_by(
            shotgun_id=data["shotgun_id"],
            entity_type_id=shots_service.get_scene_type()["id"])

        if scene is None:
            scene = Entity(**data)
            scene.save()
            current_app.logger.info("Scene created: %s" % scene)

        else:
            scene.update(data)
            scene.save()
            current_app.logger.info("Scene updated: %s" % scene)

        return scene
Пример #19
0
def get_or_create_sequence(project_id, episode_id, name):
    """
    Retrieve sequence matching given project, episode and name or create it.
    """
    sequence_type = get_sequence_type()
    sequence = Entity.get_by(entity_type_id=sequence_type["id"],
                             parent_id=episode_id,
                             project_id=project_id,
                             name=name)
    if sequence is None:
        sequence = Entity(entity_type_id=sequence_type["id"],
                          parent_id=episode_id,
                          project_id=project_id,
                          name=name)
        sequence.save()
    return sequence.serialize()
Пример #20
0
    def generate_fixture_scene(self,
                               name="SC01",
                               project_id=None,
                               sequence_id=None):
        if project_id is None:
            project_id = self.project.id

        if sequence_id is None:
            sequence_id = self.sequence.id

        self.scene = Entity(name=name,
                            description="Description Scene 01",
                            data={},
                            project_id=project_id,
                            entity_type_id=self.scene_type.id,
                            parent_id=self.sequence.id)
        self.scene.save()
Пример #21
0
def create_asset(project_id, asset_type_id, name, description, data):
    project = projects_service.get_project_raw(project_id)
    asset_type = get_asset_type_raw(asset_type_id)

    asset = Entity(project_id=project_id,
                   entity_type_id=asset_type_id,
                   name=name,
                   description=description,
                   data=data)
    asset.save()
    asset_dict = asset.serialize(obj_type="Asset")
    events.emit(
        "asset:new", {
            "asset": asset_dict,
            "asset_type": asset_type.serialize(obj_type="AssetType"),
            "project": project.serialize()
        })
    return asset_dict
Пример #22
0
    def import_entry(self, data):
        shot = Entity.get_by(shotgun_id=data["shotgun_id"],
                             entity_type_id=shot_info.get_shot_type().id)

        if shot is None:
            shot = Entity(**data)
            shot.save()
            current_app.logger.info("Shot created: %s" % shot)

        else:
            if shot.data is None:
                shot.data = {}
            shot.update(data)
            shot.data.update(data["data"])
            shot.save()

            current_app.logger.info("Shot updated: %s" % shot)

        return shot
Пример #23
0
 def generate_fixture_sequence_standard(self):
     self.sequence_standard = Entity(name="S01",
                                     project_id=self.project_standard.id,
                                     entity_type_id=self.sequence_type.id)
     self.sequence_standard.save()
Пример #24
0
 def generate_fixture_entity_camera(self):
     self.entity_camera = Entity(name="Main camera",
                                 description="Description Camera",
                                 project_id=self.project.id,
                                 entity_type_id=self.entity_type_camera.id)
     self.entity_camera.save()
Пример #25
0
 def generate_fixture_entity_standard(self):
     self.entity_standard = Entity(name="Car",
                                   project_id=self.project_standard.id,
                                   entity_type_id=self.entity_type.id)
     self.entity_standard.save()
Пример #26
0
 def generate_fixture_entity(self):
     self.entity = Entity(name="Tree",
                          description="Description Tree",
                          project_id=self.project.id,
                          entity_type_id=self.entity_type.id)
     self.entity.save()
Пример #27
0
 def generate_fixture_episode(self):
     self.episode = Entity(name="E01",
                           project_id=self.project.id,
                           entity_type_id=self.episode_type.id)
     self.episode.save()