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.projects_team_counters_fixture import fixture user1Mock = mock_for_user(1, "user-1@example.com", "sme-dna|user-1") user5Mock = mock_for_user(5, "user-5@example.com", "sme-dna|user-5") class TestProjectTeamsCounters(BaseTestCase): 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_get_project_details_should_return_valid_team_counters(self): response = self.execute_get("/projects/500/team-counters", headers=self.headers) self.assertEqual(200, response.status_code) self.assertEqual(response.json["usersCount"], 3) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1Mock.jwt_decode) def test_get_project_details_not_shared_should_return_zero_counters(self): response = self.execute_get("/projects/501/team-counters", headers=self.headers) self.assertEqual(200, response.status_code) self.assertEqual(response.json["usersCount"], 0) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user5Mock.jwt_decode) def test_get_project_details_no_permission_should_return_403(self): response = self.execute_get("/projects/501/team-counters", headers=self.headers) self.assertEqual(403, response.status_code) @patch("auth.atlas.atlas_token_decoder.jwt.decode", user1Mock.jwt_decode) def test_get_project_details_no_project_should_return_404(self): response = self.execute_get("/projects/601/team-counters", headers=self.headers) self.assertEqual(404, response.status_code)