Skip to content

Mockgun raises exception on dotted filter #298

@austinwitherspoon

Description

@austinwitherspoon

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

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions