Skip to content

Commit

Permalink
Throw exceptions on invalid entity names in filter and group by expre…
Browse files Browse the repository at this point in the history
…ssions

The previous logic was simply calling an error string formatting function,
and one which would return an incorrect error message at that. This raises
an exception with an entity-specific name formatting error message.
  • Loading branch information
tlento committed Oct 10, 2023
1 parent 7c3baa3 commit 579a5ce
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,10 @@ def create_entity(entity_name: str, entity_path: Sequence[str] = ()) -> EntityCa
"""Gets called by Jinja when rendering {{ Entity(...) }}."""
group_by_item_name = DunderedNameFormatter.parse_name(entity_name)
if len(group_by_item_name.entity_links) > 0 or group_by_item_name.time_granularity is not None:
ParameterSetFactory._exception_message_for_incorrect_format(entity_name)
raise ParseWhereFilterException(
f"Entity name is in an incorrect format: '{entity_name}'. "
f"It should not contain any dunders (double underscores, or __)."
)

return EntityCallParameterSet(
entity_path=tuple(EntityReference(element_name=arg) for arg in entity_path),
Expand Down
8 changes: 8 additions & 0 deletions tests/implementations/where_filter/test_parse_calls.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,11 @@ def test_metric_time_in_dimension_call_error() -> None: # noqa: D
PydanticWhereFilter(where_sql_template="{{ Dimension('metric_time') }} > '2020-01-01'").call_parameter_sets
is not None
)


def test_invalid_entity_name_error() -> None:
"""Test to ensure we throw an error if an entity name is invalid."""
bad_entity_filter = PydanticWhereFilter(where_sql_template="{{ Entity('order_id__is_food_order' )}}")

with pytest.raises(ParseWhereFilterException, match="Entity name is in an incorrect format"):
bad_entity_filter.call_parameter_sets

0 comments on commit 579a5ce

Please sign in to comment.