from unittest.mock import patch from tests import BaseTestCase, mock, get_file_path from datetime import datetime, timedelta from models import models from tests.campaigns.fixtures.campaign_export_fixture import fixture from tests.test_utils import FixtureLoader import pytest @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestCampaignExport(BaseTestCase): def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) @pytest.mark.skip(reason="This endpoint is currently deprecated") def test_campaigns_export(self): url = "/projects/500/export" path = get_file_path("campaigns/fixtures/facebook_campaigns_export.csv") with open(path) as file: expected_csv = file.read().format(datetime.strftime(datetime.now() + timedelta(days=200), "%Y-%m-%d")) response = self.execute_get(url, headers=self.headers) self.soft_assert(self.assertEqual, 200, response.status_code) self.soft_assert(self.assertEqual, "text/csv", response.mimetype) self.soft_assert(self.assertTrue, response.headers["Content-Disposition"] is not None) self.soft_assert(self.assertEqual, response.data.decode("utf-8").replace("\r", ""), expected_csv) self.assert_all()