from unittest.mock import patch from tests import BaseTestCase, mock from models import models from tests.campaigns.fixtures.campaigns_fixture import fixture from tests.test_utils import FixtureLoader @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestUndoCampaignDeleteView(BaseTestCase): url = "/projects/500/campaigns/{campaign_uuid}/undo/delete" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_undo_delete_campaign_success(self): valid_campaign_uuid = "14de4467-b04d-4fb4-b02e-5ab802e02608" response = self.execute_put(self.url.format(campaign_uuid=valid_campaign_uuid), headers=self.headers) self.soft_assert(self.assertEqual, 204, response.status_code) self.assert_all() def test_undo_delete_campaign_not_found(self): invalid_campaign_uuid = "e91d5585-f454-4bdd-9420-c995a7fbcee2" response = self.execute_put(self.url.format(campaign_uuid=invalid_campaign_uuid), headers=self.headers) self.soft_assert(self.assertEqual, 404, response.status_code) self.assert_all() def test_undo_delete_campaign_too_late_to_revert(self): old_campaign_uuid = "e91d5585-f454-4bdd-9420-c995a7fbcee3" response = self.execute_put(self.url.format(campaign_uuid=old_campaign_uuid), headers=self.headers) self.soft_assert(self.assertEqual, 400, response.status_code) self.assert_all() def test_undo_delete_campaign_wrong_user(self): another_user_campaign_uuid = "796b6f6d-d1af-4d45-a481-f5ed47207d9e" response = self.execute_put(self.url.format(campaign_uuid=another_user_campaign_uuid), headers=self.headers) self.soft_assert(self.assertEqual, 403, response.status_code) self.assert_all()