from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock_for_user from tests.performance.fixtures.available_platforms_fixture import fixture SELECT_WIDGET = {"id": 1, "name": "select"} TOGGLE_WIDGET = {"id": 4, "name": "toggle"} MULTI_SELECT = {"id": 2, "name": "multi-select"} GROUP_SELECT = {"id": 3, "name": "group-select"} def create_category_json(id, name, values, widget): return {"categoryId": id, "name": name, "values": values, "widget": widget} def create_value_json(id, name, subTypes, text=None): result = {"id": id, "name": name, "subTypes": subTypes, "isHidden": False, "spendVisibilityOption": None} if text is not None: result["value_text"] = text return result user1Mock = mock_for_user(1, "dev-marketing-user-1@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc6") user2Mock = mock_for_user(2, "dev-marketing-user-2@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc7") class TestCampaingTypeNames(BaseTestCase): maxDiff = None def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1Mock.jwt_decode) def test_available_platforms_with_main_user(self): url = "/performance/platforms" response = self.execute_get(url, headers=self.headers) data = response.json self.assertEqual(200, response.status_code) self.assertEqual(6, len(data["platforms"])) self.assertEqual("Apple TV", data["platforms"][0]) self.assertEqual("Appreciation Engine", data["platforms"][1]) self.assertEqual("Megaphone", data["platforms"][2]) self.assertEqual("Pandora", data["platforms"][3]) self.assertEqual("Sling TV", data["platforms"][4]) self.assertEqual("Spot Cable", data["platforms"][5]) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1Mock.jwt_decode) def test_available_external_platforms_with_main_user(self): url = "/performance/platforms" response = self.execute_get(url, headers=self.headers, query_string={"onlyExternal": True}) data = response.json self.assertEqual(200, response.status_code) self.assertEqual(6, len(data["platforms"])) self.assertEqual("Apple TV", data["platforms"][0]) self.assertEqual("Appreciation Engine", data["platforms"][1]) self.assertEqual("Megaphone", data["platforms"][2]) self.assertEqual("Pandora", data["platforms"][3]) self.assertEqual("Sling TV", data["platforms"][4]) self.assertEqual("Spot Cable", data["platforms"][5]) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user2Mock.jwt_decode) def test_available_platforms_with_second_user(self): url = "/performance/platforms" response = self.execute_get(url, headers=self.headers) data = response.json self.assertEqual(200, response.status_code) self.assertEqual(5, len(data["platforms"])) self.assertEqual("Appreciation Engine", data["platforms"][0]) self.assertEqual("High Society", data["platforms"][1]) self.assertEqual("Live", data["platforms"][2]) self.assertEqual("Pandora", data["platforms"][3]) self.assertEqual("Snapchat", data["platforms"][4])