import json from unittest.mock import patch from models import models from tests import BaseTestCase, FixtureLoader, mock from tests.media_plan.fixtures.media_plan_details_fixture import fixture @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestMediaPlaDetails(BaseTestCase): url = "projects/500/media-plans/{}" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_update_media_plan_name(self): data = { "name": "test_media_plan_1" } response = self.execute_put(self.url.format(42), data=json.dumps(data), headers=self.headers) self.assertEqual(200, response.status_code) data = response.json self.assertEqual(data['name'], "test_media_plan_1") def test_update_media_plan_with_the_same_name(self): data = { "name": "Untitled For Test" } response = self.execute_put(self.url.format(42), data=json.dumps(data), headers=self.headers) self.assertEqual(200, response.status_code) data = response.json self.assertEqual(data['name'], "Untitled For Test") def test_update_media_plan_empty_string_name_doesnt_changed(self): data = { "name": "", } response = self.execute_put(self.url.format(42), data=json.dumps(data), headers=self.headers) self.assertEqual(422, response.status_code) def test_update_media_plan_empty_string_name_doesnt_changed(self): data = { "name": " ", } response = self.execute_put(self.url.format(42), data=json.dumps(data), headers=self.headers) self.assertEqual(422, response.status_code) def test_update_media_plan_max_length(self): data = { "name": "12345678901234567890123456789012345678901", # 41 character } response = self.execute_put(self.url.format(42), data=json.dumps(data), headers=self.headers) self.assertEqual(422, response.status_code) def test_update_media_plan_empty_name_doesnt_changed(self): data = { "name": None, } response = self.execute_put(self.url.format(42), data=json.dumps(data), headers=self.headers) self.assertEqual(200, response.status_code) data = response.json self.assertEqual(data['name'], "Untitled For Test")