from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock from tests.unassigned_campaign.fixtures.unassigned_campaigns_fixture import fixture @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestUnassignedCampaigns(BaseTestCase): url = "/unassigned-campaigns" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_get_unassigned_campaign_details(self): response = self.execute_get(self.url + "/2dd6f9b4-42f5-48e8-a01f-c7bb9dc6434d", headers=self.headers) campaign = response.json self.assertEqual(200, response.status_code) self.soft_assert(self.assertEqual, campaign["id"], 4) self.soft_assert(self.assertEqual, campaign["name"], "test_campaign_4") self.soft_assert(self.assertEqual, campaign["budgetSpend"], 1000.0) self.soft_assert(self.assertEqual, campaign["plannedBudget"], 15000.0) self.soft_assert(self.assertEqual, campaign["projectId"], None) self.soft_assert(self.assertEqual, campaign["startDate"], "2007-02-02") self.soft_assert(self.assertEqual, campaign["endDate"], "2008-10-10") self.soft_assert(self.assertEqual, campaign["objective"]["id"], 2) self.soft_assert(self.assertEqual, campaign["objective"]["name"], "Conversions") self.soft_assert(self.assertEqual, campaign["status"], 3) self.assertEqual(1, len(campaign["territories"])) self.soft_assert(self.assertEqual, campaign["territories"][0]["id"], 1) self.soft_assert(self.assertEqual, campaign["territories"][0]["name"], "Ukraine") # self.soft_assert(self.assertEqual, campaign["phases"], []) self.soft_assert(self.assertEqual, campaign["isEditable"], False) self.soft_assert(self.assertEqual, campaign["isPending"], False) self.soft_assert(self.assertEqual, campaign["gratis"], False) self.soft_assert( self.assertEqual, campaign["type"], {"category": {"id": 1, "name": "Digital"}, "id": 8, "name": "Social Ads"}, ) self.soft_assert(self.assertEqual, campaign["platforms"], [{"id": 7, "labelId": None, "name": "Pandora"}]) self.assert_all() def test_get_deleted_unassigned_campaign_details_should_return_404(self): response = self.execute_get(self.url + "/c40fe4e8-58ce-4ba6-ab10-4932e685a389", headers=self.headers) self.assertEqual(404, response.status_code) def test_get_assigned_project_details_should_return_404(self): response = self.execute_get(self.url + "/34ed4c22-e1f9-4184-a06d-f04cbdb97455", headers=self.headers) self.assertEqual(404, response.status_code) def test_get_unassigned_campaign_details_without_label_access(self): response = self.execute_get(self.url + "/9d6211cf-1e47-487d-bb01-e08f6472d71e", headers=self.headers) self.assertEqual(403, response.status_code) data = response.json self.soft_assert(self.assertEqual, data['code'], "unassigned_campaign_access_restricted") self.soft_assert(self.assertEqual, data['detail'], "You can't access this campaign") self.assert_all() def test_get_unassigned_campaign_invalid_uuid(self): response = self.execute_get(self.url + "/asdhajsdhasdhoasdd", headers=self.headers) self.assertEqual(404, response.status_code)