import json from unittest.mock import patch from tests import BaseTestCase, FixtureLoader, mock from tests.media_plan.fixtures.media_plan_campaign_fixture import fixture from models import models @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestMediaPlanCampaign(BaseTestCase): url = "/projects/{}/media-plans/{}/campaigns/{}" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_campaign_partial_update(self): data = { "namingConventionManual": "Campaign Updated 1", } response = self.execute_patch( self.url.format(500, 42, "34ed4c22-e1f9-4184-a06d-f04cbdb97455"), data=json.dumps(data), headers=self.headers ) self.assertEqual(200, response.status_code) data = response.json # self.soft_assert(self.assertEqual, data["namingConventionManual"], "Campaign Updated 1") self.assert_all() def test_campaign_partial_update_with_auto_generated_name(self): data = { "platforms": [2], "objective": 1, "territories": [3], } response = self.execute_patch( self.url.format(500, 42, "34ed4c22-e1f9-4184-a06d-f04cbdb97455"), data=json.dumps(data), headers=self.headers ) self.assertEqual(200, response.status_code) data = response.json self.soft_assert( self.assertEqual, data["namingConvention"], "12345514_CR_Test Artist_ReleaseType_ReleaseName_Sling TV_AW_11_Oct_M_0-61_Targeting_UK_CreativeDescription_" ) self.assert_all()