"""Tests for `stores` parameter validation functions.""" import pytest from analytics.models.streams import Store from analytics.validation import stores_validation ERROR = object() @pytest.mark.parametrize('stores,expected_response', [ ([Store.SPOTIFY, Store.APPLE_MUSIC, 'BAD_STORE'], ERROR), ([Store.SPOTIFY, Store.APPLE_MUSIC, Store.AMAZON_MUSIC], [Store.SPOTIFY, Store.APPLE_MUSIC, Store.AMAZON_MUSIC]), # Empty list is threated as a list of all available stores ([], [Store.SPOTIFY, Store.APPLE_MUSIC, Store.AMAZON_MUSIC]), ( [Store.SPOTIFY, Store.AMAZON_MUSIC], [Store.SPOTIFY, Store.AMAZON_MUSIC]), (['BAD_STORE'], ERROR), ]) def test_streams_stores_validation(stores, expected_response): """Test validate_stores function.""" response = stores_validation.validate_streams_stores(stores) if expected_response is not ERROR: assert sorted(response.message) == sorted(expected_response) else: assert response.errors