from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock from tests.projects.fixtures.recent_projects_activity_fixture import fixture @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestRecentProjectsCampaign(BaseTestCase): url = "/projects/recent-activity" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_get_recent_projects(self): response = self.execute_get(self.url, headers=self.headers) events = response.json self.assertEqual(200, response.status_code) self.assertIs(list, type(events)) self.assertEqual(5, len(events)) self.soft_assert(self.assertEqual, events[0]["event"]["id"], 5) self.soft_assert(self.assertEqual, events[0]["event"]["action"], {"id": 19, "type": "add_primary_artists"}) self.soft_assert( self.assertEqual, events[0]["event"]["user"], { "email": "dev-marketing-user-3@example.com", "id": "sme-dna|9op0091d6cuhjp30fe6ffth34", "label": {"id": 4, "name": "CMG"}, "name": "dev-marketing-user-3", "role": None, }, ) self.soft_assert(self.assertEqual, events[0]["event"]["new_value"], [{"id": 1415, "name": "Luiggi Berrios"}]) self.soft_assert(self.assertEqual, events[0]["event"]["old_value"], None) self.soft_assert(self.assertEqual, events[0]["event"]["campaign"], None) self.soft_assert(self.assertEqual, events[0]["event"]["date"], "2020-05-11T12:49:00+0000") self.soft_assert(self.assertEqual, events[0]["project"]["id"], 500) self.soft_assert(self.assertEqual, events[0]["project"]["name"], "test_project_500") self.soft_assert( self.assertEqual, events[0]["project"]["targets"], { "items": [ { "id": "01", "images": [ {"height": 250, "url": "http://test.com", "width": 200}, {"height": 250, "url": "http://test.com/1", "width": 200}, ], "name": "TestAtrist", "ownerName": "Owner1", "provider": "spotify", }, {"id": "02", "images": [], "name": "TestingUpdate", "ownerName": "Owner1", "provider": "spotify"}, {"id": "03", "images": [], "name": "artist2", "ownerName": "Owner1", "provider": "spotify"}, {"id": "04", "images": [], "name": "artist01", "ownerName": "Owner3", "provider": "apple"}, ], "type": "Playlist", }, ) self.soft_assert(self.assertEqual, events[1]["event"]["id"], 4) self.soft_assert(self.assertEqual, events[1]["event"]["action"], {"id": 14, "type": "add_project"}) self.soft_assert( self.assertEqual, events[1]["event"]["user"], { "email": "dev-marketing-user-2@example.com", "id": "sme-dna|3po0091d6c91ty670fe6ftryf", "label": None, "name": "dev-marketing-user-2", "role": None, }, ) self.soft_assert(self.assertEqual, events[1]["event"]["new_value"], None) self.soft_assert(self.assertEqual, events[1]["event"]["old_value"], None) self.soft_assert(self.assertEqual, events[1]["event"]["campaign"], None) self.soft_assert(self.assertEqual, events[1]["event"]["date"], "2020-05-11T12:35:00+0000") self.soft_assert(self.assertEqual, events[1]["project"]["id"], 500) self.soft_assert(self.assertEqual, events[1]["project"]["name"], "test_project_500") self.soft_assert( self.assertEqual, events[1]["project"]["targets"], { "items": [ { "id": "01", "images": [ {"height": 250, "url": "http://test.com", "width": 200}, {"height": 250, "url": "http://test.com/1", "width": 200}, ], "name": "TestAtrist", "ownerName": "Owner1", "provider": "spotify", }, {"id": "02", "images": [], "name": "TestingUpdate", "ownerName": "Owner1", "provider": "spotify"}, {"id": "03", "images": [], "name": "artist2", "ownerName": "Owner1", "provider": "spotify"}, {"id": "04", "images": [], "name": "artist01", "ownerName": "Owner3", "provider": "apple"}, ], "type": "Playlist", }, ) self.soft_assert(self.assertEqual, events[2]["event"]["id"], 14) self.soft_assert(self.assertEqual, events[2]["event"]["action"], {"id": 14, "type": "add_project"}) self.soft_assert( self.assertEqual, events[2]["event"]["user"], { "email": "dev-marketing-user-5@example.com", "id": "sme-dna|1mk0091d6cuhjp30fe6optiii", "label": {"id": 4, "name": "CMG"}, "name": "dev-marketing-user-5", "role": None, }, ) self.soft_assert(self.assertEqual, events[2]["event"]["new_value"], None) self.soft_assert(self.assertEqual, events[2]["event"]["old_value"], None) self.soft_assert(self.assertEqual, events[2]["event"]["campaign"], None) self.soft_assert(self.assertEqual, events[2]["event"]["date"], "2020-01-01T00:03:02+0000") self.soft_assert(self.assertEqual, events[2]["project"]["id"], 505) self.soft_assert(self.assertEqual, events[2]["project"]["name"], "test_project_505") self.soft_assert( self.assertEqual, events[2]["project"]["targets"], { "items": [ { "id": "GRAS_1234213", "image": None, "isSony": True, "isUnknown": False, "isPRS": False, "name": "artist2", "type": "Primary", } ], "type": "Artist", }, ) self.soft_assert(self.assertEqual, events[3]["event"]["id"], 12) self.soft_assert(self.assertEqual, events[3]["event"]["action"], {"id": 14, "type": "add_project"}) self.soft_assert( self.assertEqual, events[3]["event"]["user"], { "email": "dev-marketing-user-5@example.com", "id": "sme-dna|1mk0091d6cuhjp30fe6optiii", "label": {"id": 4, "name": "CMG"}, "name": "dev-marketing-user-5", "role": None, }, ) self.soft_assert(self.assertEqual, events[3]["event"]["new_value"], None) self.soft_assert(self.assertEqual, events[3]["event"]["old_value"], None) self.soft_assert(self.assertEqual, events[3]["event"]["campaign"], None) self.soft_assert(self.assertEqual, events[3]["event"]["date"], "2020-01-01T00:02:02+0000") self.soft_assert(self.assertEqual, events[3]["project"]["id"], 504) self.soft_assert(self.assertEqual, events[3]["project"]["name"], "test_project_504") self.soft_assert( self.assertEqual, events[3]["project"]["targets"], { "items": [ { "id": "GRAS_1234215", "image": {"height": 250, "url": "http://test.com/3", "width": 400}, "isSony": True, "isUnknown": False, "isPRS": False, "name": "UpdateArtist", "type": "Primary", }, { "id": "GRAS_1234211", "image": None, "isSony": True, "isUnknown": False, "isPRS": False, "name": "TestAtrist", "type": "Primary", }, ], "type": "Artist", }, ) self.soft_assert(self.assertEqual, events[4]["event"]["id"], 10) self.soft_assert(self.assertEqual, events[4]["event"]["action"], {"id": 14, "type": "add_project"}) self.soft_assert( self.assertEqual, events[3]["event"]["user"], { "email": "dev-marketing-user-5@example.com", "id": "sme-dna|1mk0091d6cuhjp30fe6optiii", "label": {"id": 4, "name": "CMG"}, "name": "dev-marketing-user-5", "role": None, }, ) self.soft_assert(self.assertEqual, events[4]["event"]["new_value"], None) self.soft_assert(self.assertEqual, events[4]["event"]["old_value"], None) self.soft_assert(self.assertEqual, events[4]["event"]["campaign"], None) self.soft_assert(self.assertEqual, events[4]["event"]["date"], "2020-01-01T00:01:02+0000") self.soft_assert(self.assertEqual, events[4]["project"]["id"], 503) self.soft_assert(self.assertEqual, events[4]["project"]["name"], "test_project_503") self.soft_assert( self.assertEqual, events[4]["project"]["targets"], { "items": [ { "id": "GRAS_1234216", "image": None, "isSony": True, "isUnknown": False, "isPRS": False, "name": "artist2e", "type": "Primary", } ], "type": "Artist", }, ) self.assert_all()