"""conftest. This file gets picked up when running py.test tests: http://pytest.org/latest/writing_plugins.html#conftest """ from oto import response import pytest from promo_player import api from promo_player import config from promo_player.constants import header from promo_player.constants import promo_player as promo_player_constants config.ENVIRONMENT = config.TEST_ENVIRONMENT @pytest.fixture def app_context(): """Create an api test app fixture.""" with api.app.app_context(): yield @pytest.fixture def fixture_client(): """Fixture for an API client.""" return api.app.test_client() @pytest.fixture def fixture_success(): """Fixture for a success response.""" return response.Response(status=200) @pytest.fixture def fixture_fatal(): """Fixture for a fatal response.""" return response.create_fatal_response() @pytest.fixture def fixture_no_grass_headers(): """Fixture for a request without Grass headers.""" return (None, None) @pytest.fixture def fixture_grass_headers_vendor(): """Fixture for a request with vendor Grass headers.""" return (header.GRASS_ACCOUNT_TYPE_VENDOR, 123) @pytest.fixture def fixture_promo_player_response(): """Fixture for a response containing a promo player.""" return response.Response({ 'promo_player_id': 1, 'product_id': 2, 'vendor_id': 3, 'code': '0123456789abcdefghij', 'active': True, 'expiration_mode': promo_player_constants.EXPIRATION_MODE_NONE, 'skin': promo_player_constants.SKIN_LIGHT }) @pytest.fixture def fixture_promo_player_with_tracks_response(): """Fixture for a response containing a promo player with tracks.""" return response.Response({ 'promo_player_id': 1, 'product_id': 2, 'vendor_id': 3, 'code': '0123456789abcdefghij', 'active': True, 'expiration_mode': promo_player_constants.EXPIRATION_MODE_NONE, 'skin': promo_player_constants.SKIN_LIGHT, 'tracks': [ { 'promo_player_id': 1, 'track_id': 1 }, { 'promo_player_id': 1, 'track_id': 2 } ] }) @pytest.fixture def fixture_promo_player_tracks_response(): """Fixture for a response containing a list of promo player tracks.""" return response.Response({ 'items': [ { 'promo_player_id': 1, 'track_id': 1 }, { 'promo_player_id': 1, 'track_id': 2 } ] }) @pytest.fixture def fixture_promo_players_response(): """Fixture for a response containing a list of promo players.""" return response.Response({ 'items': [ { 'promo_player_id': 1, 'product_id': 2, 'vendor_id': 3, 'code': '0123456789abcdefghij', 'active': True, 'expiration_mode': promo_player_constants.EXPIRATION_MODE_NONE, 'skin': promo_player_constants.SKIN_LIGHT }, { 'promo_player_id': 11, 'product_id': 2, 'vendor_id': 3, 'code': '0123456789abcdefghik', 'active': True, 'expiration_mode': promo_player_constants.EXPIRATION_MODE_NONE, 'skin': promo_player_constants.SKIN_LIGHT } ] }) @pytest.fixture def fixture_promo_player_code(): """Fixture for a promo player code.""" return '0123456789abcdefghij' @pytest.fixture def fixture_promo_player_track_response(): """Fixture for a response containing a promo player track.""" return response.Response({ 'promo_player_id': 1, 'track_id': 2 })