Skip to content

Mockgun raises exception on dotted filter #298

Open
@austinwitherspoon

Description

Running the following code:

mockgun.find("Version", [["entity.Shot.code", "is", "bunny_080_0010"]], ["code", "description"])

raises the exception shotgun_api3.shotgun.ShotgunError: Deep query field Version.entity.Shot.code does not match type with data {'type': 'Asset', 'id': 1351, 'name': 'mp_415'}

This exception is raised from _get_field_from_row() which is expecting that every single row has the same type, but a field like entity is multi-entity and this will always raise an exception.

I did a small experiment and it appears that we can just return None instead of raising an exception which will fix the issue (although there may be a side effect of filters like ["entity.Shot.other_field", "is", "None"] getting falsely included when entity != Shot.. maybe a special return type like "NoField" to indicate a field wasn't found and to skip?)

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions