"""Tests for analytics.queries.schema.""" from analytics.queries.schema import QueryWithPermissionsSchema def test_permission_label_ids_accepts_none_element(): """Lists with None elements must validate. get_permissions_filter() emits label_ids=[None] for LabelProfiles whose first ows-permissions resource is a Subaccount (vendor_id=None). The pre-#1914 SQL-template path tolerated this; the new AbstractSnowflakeQuery path runs schema.load(), so the schema must accept it. The SQL macro renders [None] as `labelid IN (NULL)`, which matches no rows. """ schema = QueryWithPermissionsSchema() loaded = schema.load( { "permission_label_ids": [None], "permission_artist_ids": None, "permission_subaccount_ids": [123], "permission_label_participant_ids": None, "permission_product_ids": None, "permission_feed_ids": [1, 2, 38], } ) assert loaded["permission_label_ids"] == [None] assert loaded["permission_subaccount_ids"] == [123]