from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock_for_user from tests.artists.fixtures.artist_team_per_project_fixture import fixture from config import LABEL_IMAGE_SERVICE_URL user1 = mock_for_user(1, "dev-marketing-user-1@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc6", labels=[1, 2, 3, 4]) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1.jwt_decode) class TestArtistTeamPerProject(BaseTestCase): def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_get_artist_team_for_project(self): url = "/projects/500/artist-team" response = self.execute_get(url, headers=self.headers) item = response.json self.assertEqual(200, response.status_code) self.assertEqual(3, len(item["users"])) self.soft_assert_equal(item["artistTeamId"], 1) self.soft_assert_equal( item["label"], {"id": 1, "name": "Columbia Records", "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=1)} ) self.soft_assert_equal(len(item["users"]), 3) self.soft_assert_equal(item["users"][0]["id"], 1) self.soft_assert_equal(item["users"][0]["email"], "dev-marketing-user-1@example.com") self.soft_assert_equal(item["users"][0]["name"], "User 1") self.soft_assert_equal(item["users"][0]["phone"], "+1234234") self.soft_assert_equal(item["users"][0]["roles"], [{"categoryIds": [], "id": 1, "name": "Editor"}]) self.soft_assert_equal(len(item["users"][0]["labels"]), 4) self.soft_assert_equal( item["users"][0]["labels"][0], { "id": 1, "name": "Columbia Records", "externalId": "123456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=1), } ) self.soft_assert_equal( item["users"][0]["labels"][1], { "id": 2, "name": "Epic Records", "externalId": "223456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=2), } ) self.soft_assert_equal( item["users"][0]["labels"][2], { "id": 3, "name": "RCA Records", "externalId": "323456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=3), } ) self.soft_assert_equal( item["users"][0]["labels"][3], { "id": 4, "name": "CMG", "externalId": "423456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=4), } ) self.soft_assert_equal(item["users"][1]["id"], 3) self.soft_assert_equal(item["users"][1]["email"], "dev-marketing-user-3@example.com") self.soft_assert_equal(item["users"][1]["name"], "user-3") self.soft_assert_equal(item["users"][1]["phone"], "") self.soft_assert_equal(item["users"][1]["roles"], [{"categoryIds": [], "id": 1, "name": "Editor"}]) self.soft_assert_equal(len(item["users"][1]["labels"]), 2) self.soft_assert_equal( item["users"][1]["labels"], [ { "id": 2, "name": "Epic Records", "externalId": "223456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=2) }, { "id": 1, "name": "Columbia Records", "externalId": "123456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=1), }, ], ) self.soft_assert_equal(item["users"][2]["id"], 4) self.soft_assert_equal(item["users"][2]["email"], "dev-marketing-user-4@example.com") self.soft_assert_equal(item["users"][2]["name"], "user-4") self.soft_assert_equal(item["users"][2]["phone"], "") self.soft_assert_equal(item["users"][2]["roles"], [{"categoryIds": [], "id": 3, "name": "Viewer"}]) self.soft_assert_equal(len(item["users"][2]["labels"]), 1) self.soft_assert_equal( item["users"][2]["labels"][0], { "id": 1, "name": "Columbia Records", "externalId": "123456", "abbreviation": None, "country": None, "imageUrl": LABEL_IMAGE_SERVICE_URL.format(id=1), } ) def test_get_non_existing_artist_team_for_project(self): url = "/projects/501/artist-team" response = self.execute_get(url, headers=self.headers) items = response.json self.assertEqual(404, response.status_code) self.assertEqual("artist team not found", items["code"]) def test_get_artist_teams_for_project_no_team_for_artist_should_return_no_team(self): url = "/projects/502/artist-team" response = self.execute_get(url, headers=self.headers) self.assertEqual(404, response.status_code) self.assert_all()