import json from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock_for_user from tests.unassigned_projects.fixtures.unassigned_projects_fixture import fixture user1Mock = mock_for_user(1, "dev-marketing-user-1@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc6", is_admin=True) class TestUnassignedProjectsWithUnknownArtist(BaseTestCase): url = "/unassigned-projects/{}/history" 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_get_project_history_after_claim_ownership(self): url = "/unassigned-projects/505" data = { "targets": { "items": [ { "id": "GRAS_21122", "image": None, "isSony": True, "isUnknown": True, "name": "TestAtrist", "type": "Primary", }, { "id": "GRAS_21123", "image": None, "isSony": True, "isUnknown": False, "name": "TestingUpdate", "type": "Primary", }, ], "type": "Artist", }, "name": "Gras Project Title 1", "endDate": "2020-10-11", "notes": "abracadabra", "startDate": "2007-02-02", } claimed_response = self.execute_post(url, headers=self.headers, data=json.dumps(data)) project_id = claimed_response.json["id"] history_response = self.execute_get(f"/projects/{project_id}/history", headers=self.headers) note_history_response = self.execute_get(f"/projects/{project_id}/notes-history", headers=self.headers) histories = history_response.json notes_history = note_history_response.json["history"] self.soft_assert(self.assertEqual, histories["items"][0]["id"], 8) self.soft_assert(self.assertEqual, histories["items"][0]["is_gras"], False) self.soft_assert(self.assertEqual, histories["items"][0]["new_value"], None) self.soft_assert(self.assertEqual, histories["items"][0]["campaign"], None) self.soft_assert( self.assertEqual, histories["items"][0]["action"], {"id": 21, "type": "remove_primary_artists"} ) self.soft_assert( self.assertEqual, histories["items"][0]["user"], { "email": "dev-marketing-user-1@example.com", "id": "sme-dna|5cf0091d6c91d310fe6fcdc6", "label": {"id": 1, "name": "Columbia Records"}, "name": "dev-marketing-user-1", "role": {"categoryIds": [], "id": 0, "name": "Admin"}, }, ) self.soft_assert( self.assertEqual, histories["items"][0]["old_value"], [{"id": 10, "name": "TestAtrist"}, {"id": 20, "name": "TestingUpdate"}], ) self.soft_assert(self.assertEqual, histories["items"][1]["id"], 7) self.soft_assert(self.assertEqual, histories["items"][1]["is_gras"], False) self.soft_assert( self.assertEqual, histories["items"][1]["new_value"], [{"id": 1, "name": "TestAtrist"}, {"id": 2, "name": "TestingUpdate"}], ) self.soft_assert(self.assertEqual, histories["items"][1]["campaign"], None) self.soft_assert(self.assertEqual, histories["items"][1]["action"], {"id": 19, "type": "add_primary_artists"}) self.soft_assert(self.assertEqual, histories["limit"], 20) self.soft_assert(self.assertEqual, histories["offset"], 0) self.soft_assert(self.assertEqual, histories["total"], 4) self.soft_assert(self.assertEqual, notes_history[0]["id"], 6) self.soft_assert(self.assertEqual, notes_history[0]["action"], {"id": 16, "type": "update_project_notes"}) self.soft_assert(self.assertTrue, notes_history[0]["campaign"] is None) self.soft_assert(self.assertEqual, notes_history[0]["user"]["id"], "sme-dna|5cf0091d6c91d310fe6fcdc6") self.soft_assert(self.assertEqual, notes_history[0]["user"]["email"], "dev-marketing-user-1@example.com") self.soft_assert(self.assertEqual, notes_history[0]["user"]["name"], "dev-marketing-user-1") self.soft_assert(self.assertEqual, notes_history[0]["user"]["label"], {"id": 1, "name": "Columbia Records"}) self.soft_assert(self.assertEqual, notes_history[0]["new_value"], {"value": "abracadabra"}) self.soft_assert(self.assertEqual, notes_history[0]["old_value"], {"value": None}) self.assert_all()