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_project_campaigns_fixture import fixture user1Mock = mock_for_user(1, "dev-marketing-user-1@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc6") user2Mock = mock_for_user(2, "dev-marketing-user-2@example.com", "sme-dna|3po0091d6c91ty670fe6ftryf") class TestUnassignedProjectCampaigns(BaseTestCase): url = "/unassigned-projects/501/campaigns-list" 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_campaigns_list(self): response = self.execute_get(self.url, headers=self.headers) items = response.json["items"] self.assertEqual(200, response.status_code) self.assertIs(list, type(items)) self.assertEqual(2, len(items)) self.soft_assert(self.assertEqual, items[0]["id"], 3) self.soft_assert(self.assertEqual, items[0]["name"], "test_deleted_campaign_3") self.soft_assert(self.assertEqual, items[0]["budgetSpend"], 1000) self.soft_assert(self.assertEqual, items[0]["platforms"], [{"id": 67, "labelId": None, "name": "Vice"}]) self.soft_assert(self.assertEqual, items[0]["endDate"], "2008-10-10") self.soft_assert(self.assertEqual, items[0]["startDate"], "2007-02-02") self.soft_assert(self.assertEqual, items[0]["adSetsCount"], 0) self.soft_assert(self.assertEqual, items[1]["id"], 4) self.soft_assert(self.assertEqual, items[1]["name"], "test_deleted_campaign_4") self.soft_assert(self.assertEqual, items[1]["budgetSpend"], 15000) self.soft_assert(self.assertEqual, items[1]["platforms"], [{"id": 67, "labelId": None, "name": "Vice"}]) self.soft_assert(self.assertEqual, items[1]["endDate"], "2008-10-10") self.soft_assert(self.assertEqual, items[1]["startDate"], "2008-02-02") self.soft_assert(self.assertEqual, items[1]["adSetsCount"], 0) self.soft_assert(self.assertEqual, response.json["limit"], 20) self.soft_assert(self.assertEqual, response.json["offset"], 0) self.soft_assert(self.assertEqual, response.json["total"], 2) self.assert_all() @patch("auth.atlas.atlas_token_decoder.jwt.decode", user2Mock.jwt_decode) def test_get_campaigns_list_no_access_for_user(self): response = self.execute_get(self.url, headers=self.headers) self.assertEqual(404, response.status_code)