from unittest.mock import patch from tests.test_utils import FixtureLoader from models import models from tests import BaseTestCase, mock_for_user from tests.projects.fixtures.newly_added_projects_fixture import fixture user10Mock = mock_for_user( 10, "dev-marketing-10@example.com", "sme-dna|phn0077d6cuhjp30fe6oadm10", is_admin=False, labels=[6, 7] ) user1Mock = mock_for_user( 1, "dev-marketing-user-1@example.com", "sme-dna|5cf0091d6c91d310fe6fcdc6", is_admin=True, labels=[1, 2, 3, 4, 5, 7] ) class TestNewlyAddedProjects(BaseTestCase): url = "/projects/newly-added" 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_list_of_newly_added_projects(self): response = self.execute_get(self.url, headers=self.headers) self.assertEqual(response.status_code, 200) items = response.json self.soft_assert_equal(items[0]['id'], 502) self.soft_assert_equal(items[0]['name'], "test_project_3") self.soft_assert_equal(items[0]['label']["id"], 4) self.soft_assert_equal(items[0]['label']["name"], "CMG") self.soft_assert_equal(items[0]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[0]['isConfidential'], False) self.soft_assert_equal(len(items[0]["targets"]["items"]), 3) self.soft_assert_equal(items[1]['id'], 420) self.soft_assert_equal(items[1]['name'], "test_project_420") self.soft_assert_equal(items[1]['label']["id"], 4) self.soft_assert_equal(items[1]['label']["name"], "CMG") self.soft_assert_equal(items[1]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[1]['isConfidential'], False) self.soft_assert_equal(len(items[1]["targets"]["items"]), 1) self.soft_assert_equal(items[2]['id'], 500) self.soft_assert_equal(items[2]['name'], "test_project_1") self.soft_assert_equal(items[2]['label']["id"], 4) self.soft_assert_equal(items[2]['label']["name"], "CMG") self.soft_assert_equal(items[2]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[2]['isConfidential'], False) self.soft_assert_equal(len(items[2]["targets"]["items"]), 4) self.soft_assert_equal(items[3]['id'], 509) self.soft_assert_equal(items[3]['name'], "test_unclaimed_project_9") self.soft_assert_equal(items[3]['label']["id"], 7) self.soft_assert_equal(items[3]['label']["name"], "NeNash") self.soft_assert_equal(items[3]["editDate"], None) self.soft_assert_equal(items[3]['isConfidential'], True) self.soft_assert_equal(len(items[3]["targets"]["items"]), 1) self.assert_all() @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1Mock.jwt_decode) def test_filter_by_label(self): response = self.execute_get(self.url+"?label=4", headers=self.headers) self.assertEqual(response.status_code, 200) items = response.json self.soft_assert_equal(items[0]['id'], 502) self.soft_assert_equal(items[0]['name'], "test_project_3") self.soft_assert_equal(items[0]['label']["id"], 4) self.soft_assert_equal(items[0]['label']["name"], "CMG") self.soft_assert_equal(items[0]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[0]['isConfidential'], False) self.soft_assert_equal(len(items[0]["targets"]["items"]), 3) self.soft_assert_equal(items[1]['id'], 420) self.soft_assert_equal(items[1]['name'], "test_project_420") self.soft_assert_equal(items[1]['label']["id"], 4) self.soft_assert_equal(items[1]['label']["name"], "CMG") self.soft_assert_equal(items[1]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[1]['isConfidential'], False) self.soft_assert_equal(len(items[1]["targets"]["items"]), 1) self.soft_assert_equal(items[2]['id'], 500) self.soft_assert_equal(items[2]['name'], "test_project_1") self.soft_assert_equal(items[2]['label']["id"], 4) self.soft_assert_equal(items[2]['label']["name"], "CMG") self.soft_assert_equal(items[2]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[2]['isConfidential'], False) self.soft_assert_equal(len(items[2]["targets"]["items"]), 4) self.soft_assert_equal(items[3]['id'], 505) self.soft_assert_equal(items[3]['name'], "test_project_4") self.soft_assert_equal(items[3]['label']["id"], 4) self.soft_assert_equal(items[3]['label']["name"], "CMG") self.soft_assert_equal(items[3]["editDate"], "2019-07-23T16:14:55.446196+00:00") self.soft_assert_equal(items[3]['isConfidential'], False) self.soft_assert_equal(len(items[3]["targets"]["items"]), 1) self.assert_all() @patch("auth.atlas.atlas_token_decoder.jwt.decode", user10Mock.jwt_decode) def test_get_new_projects_for_non_admin(self): response = self.execute_get(self.url, headers=self.headers) self.assertEqual(response.status_code, 200) items = response.json # non conf in artist team 504, 507 # conf proj in artist team and in user project 508 self.soft_assert_equal(set([project.get("id") for project in items]), {504, 507, 508}) self.assert_all() @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1Mock.jwt_decode) def test_invalid_label(self): response = self.execute_get(self.url + "?label=6", headers=self.headers) self.assertEqual(response.status_code, 403)