from unittest.mock import patch, MagicMock from tests.test_utils import FixtureLoader from models import models, Project from tests import BaseTestCase, mock from tests.campaigns.fixtures.assignable_projects_by_campaigns_fixture import fixture @patch("auth.atlas.atlas_token_decoder.jwt.decode", mock.jwt_decode) class TestAssignableProjectsByCampaign(BaseTestCase): url = "/campaigns/{}/assignable-projects" def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) def test_get_assignable_project(self): response = self.execute_get(self.url.format("e91d5585-f454-4bdd-9420-c995a7fbcee3"), headers=self.headers) items = response.json self.assertEqual(200, response.status_code) self.assertIs(list, type(items["items"])) self.assertEqual(5, len(items["items"])) self.soft_assert(self.assertEqual, items["items"][0]["id"], 506) self.soft_assert(self.assertEqual, items["items"][1]["id"], 505) self.soft_assert(self.assertEqual, items["items"][2]["id"], 502) self.soft_assert(self.assertEqual, items["items"][3]["id"], 501) self.soft_assert(self.assertEqual, items["items"][4]["id"], 503) self.assert_all() @patch.object(Project, "search", MagicMock(return_value=[502])) def test_get_assignable_project_search(self): response = self.execute_get( self.url.format("e91d5585-f454-4bdd-9420-c995a7fbcee3"), headers=self.headers, query_string={"query": "test_deleted_campaign_3"} ) items = response.json self.assertEqual(200, response.status_code) self.assertIs(list, type(items["items"])) self.assertEqual(1, len(items["items"])) self.soft_assert(self.assertEqual, items["items"][0]["id"], 502) self.assert_all()