from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock_for_user from tests.label_permissions.fixtures.label_artists_fixture import fixture user1 = mock_for_user(1, "dev-marketing-user-1@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc6", is_admin=True) user2 = mock_for_user(2, "dev-marketing-user-2@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc7", is_admin=False) class TestLabelArtists(BaseTestCase): url = "/labels/{}/artists" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1.jwt_decode) def test_get_label_artists(self): response = self.execute_get(self.url.format(1), headers=self.headers) self.assertEqual(200, response.status_code) label_artists = response.json self.soft_assert_equal(len(label_artists), 6) self.soft_assert_equal( [artist.get("id") for artist in label_artists], ["GRAS_100", "GRAS_20", "GRAS_30", "GRAS_70", "GRAS_80", "GRAS_10"] ) # 20, 10, 70 - through project target items primary locked # 100 - through project target item primary non-locked # 30 - artist team # 500, 501, 504, 505, 506, 507, 508, 510, 511, 512, 514 # 20, 10, 70, 80, 100 self.assert_all() @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1.jwt_decode) def test_get_empty_label_artists(self): response = self.execute_get(self.url.format(4), headers=self.headers) self.assertEqual(200, response.status_code) label_artists = response.json self.assertEqual(len(label_artists), 0) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1.jwt_decode) def test_get_label_artists_not_existed_label_return_404(self): response = self.execute_get(self.url.format(666), headers=self.headers) self.assertEqual(404, response.status_code) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1.jwt_decode) def test_user_without_label_return_403(self): response = self.execute_get(self.url.format(2), headers=self.headers) self.assertEqual(403, response.status_code)