示例#1
0
    def test_correctly_sets_values_from_legacy_values(self):
        me_legacy = Permission(PermissionMocks.get_legacy_me_permission_dict())
        meo_legacy = Permission(
            PermissionMocks.get_legacy_meo_permission_dict())

        self.assertEqual(me_legacy.role_type, enums.roles.ME)
        self.assertEqual(meo_legacy.role_type, enums.roles.MEO)
示例#2
0
 def test_correctly_sets_values_on_init(self):
     permission = Permission(PermissionMocks.get_meo_permission_dict())
     self.assertEqual(permission.user_id,
                      PermissionMocks.get_meo_permission_dict()['userId'])
     self.assertEqual(
         permission.permission_id,
         PermissionMocks.get_meo_permission_dict()['permissionId'])
     self.assertEqual(
         permission.location_id,
         PermissionMocks.get_meo_permission_dict()['locationId'])
     self.assertEqual(permission.user_role,
                      PermissionMocks.get_meo_permission_dict()['userRole'])
示例#3
0
def update_permission(permission, user_id, permission_id, auth_token):
    if settings.LOCAL:
        return PermissionMocks.get_successful_permission_update_response()
    else:
        return MedexRequest.put(
            auth_token, '%s/users/%s/permissions/%s' %
            (settings.API_URL, user_id, permission_id), permission)
示例#4
0
def load_permissions_for_user(user_id, auth_token):
    if settings.LOCAL:
        return PermissionMocks.get_successful_permission_load_response(
            PermissionMocks.MEO_TYPE)
    else:
        return MedexRequest.get(
            auth_token,
            '%s/users/%s/permissions' % (settings.API_URL, user_id))
示例#5
0
    def test_submitting_a_valid_update_form_that_errors_on_api_returns_error(self, mock_permission_update):
        # Given - some valid permission update data'
        self.set_auth_cookies()
        data = PermissionMocks.get_permission_builder_form_mock_data()

        # When - we submit to the update endpoint (mocked to always return failure if it gets to the api)'
        response = self.client.post('/users/%s/edit_permission/%s' % (UserMocks.USER_ID, PermissionMocks.PERMISSION_ID),
                                    data)

        # Then - we should be get server failure and stay on the editor page'
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertTemplateUsed(response, 'users/permission_editor.html')
示例#6
0
    def test_submitting_an_update_form_that_succeeds_on_api_redirects_to_the_manage_user_page(self):
        # Given - some valid permission update data'
        self.set_auth_cookies()
        data = PermissionMocks.get_permission_builder_form_mock_data()

        # When - we submit to the update endpoint (mocked to always return success)'
        response = self.client.post('/users/%s/edit_permission/%s' % (UserMocks.USER_ID, PermissionMocks.PERMISSION_ID),
                                    data)

        # Then - we should be get successful and redirect to the manage users page'
        self.assertEqual(response.status_code, status.HTTP_302_FOUND)
        self.assertEqual(response.url, '/users/%s/manage' % UserMocks.USER_ID)
示例#7
0
class PermissionViewsTests(MedExTestCase):
    # Add permission tests

    """ GENERAL """

    def test_landing_on_the_add_permission_page_loads_the_correct_template(self):
        self.set_auth_cookies()
        response = self.client.get('/users/%s/add_permission' % UserMocks.USER_ID)
        self.assertTemplateUsed(response, 'users/permission_builder.html')

    @patch('users.request_handler.validate_session',
           return_value=SessionMocks.get_unsuccessful_validate_session_response())
    def test_landing_on_the_add_permission_page_redirects_to_login_if_not_logged_in(self, mock_auth_validation):
        response = self.client.get('/users/%s/add_permission' % UserMocks.USER_ID)
        self.assertEqual(response.status_code, status.HTTP_302_FOUND)
        self.assertEqual(response.url, '/login')

    """ GET """

    @patch('users.request_handler.load_by_id', return_value=UserMocks.get_unsuccessful_single_user_load_response())
    def test_landing_on_the_add_permission_page_loads_the_correct_template_if_the_user_cant_be_found(self,
                                                                                                     mock_user_load):
        self.set_auth_cookies()
        response = self.client.get('/users/%s/add_permission' % UserMocks.USER_ID)
        self.assertTemplateUsed(response, 'errors/base_error.html')

    """ POST """

    def test_submitting_a_valid_form_that_succeeds_on_api_returns_the_a_redirect_to_the_manage_user_page(self):
        self.set_auth_cookies()
        submission = {'role': 'me', 'permission_level': 'national', 'region': '', 'trust': ''}
        response = self.client.post('/users/%s/add_permission' % UserMocks.USER_ID, submission)
        self.assertEqual(response.status_code, status.HTTP_302_FOUND)
        self.assertEqual(response.url, '/users/%s/manage' % UserMocks.USER_ID)

    def test_a_valid_form_that_succeeds_on_api_returns_a_blank_permissions_page_if_add_another_selected(self):
        self.set_auth_cookies()
        submission = {'role': 'me', 'permission_level': 'national', 'region': '', 'trust': '', 'add_another': 'true'}
        response = self.client.post('/users/%s/add_permission' % UserMocks.USER_ID, submission)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        context_form = self.get_context_value(response.context, 'form')
        self.assertIsNone(context_form.permission_level)
        self.assertIsNone(context_form.role)

    def test_submitting_an_invalid_form_returns_a_bad_request_response_and_an_error_message(self):
        self.set_auth_cookies()
        submission = {'role': '', 'permission_level': 'national', 'region': '', 'trust': ''}
        response = self.client.post('/users/%s/add_permission' % UserMocks.USER_ID, submission)
        self.assertTemplateUsed(response, 'users/permission_builder.html')
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

    @patch('permissions.request_handler.create_permission',
           return_value=PermissionMocks.get_unsuccessful_permission_creation_response())
    def test_submitting_a_valid_form_that_errors_on_api_returns_the_status_from_server_and_an_error_message(self,
                                                                                                            mock_permission_creation):
        self.set_auth_cookies()
        submission = {'role': 'me', 'permission_level': 'national', 'region': '', 'trust': ''}
        response = self.client.post('/users/%s/add_permission' % UserMocks.USER_ID, submission)
        self.assertTemplateUsed(response, 'users/permission_builder.html')
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

    """ UPDATE """

    def test_submitting_an_update_form_that_succeeds_on_api_redirects_to_the_manage_user_page(self):
        # Given - some valid permission update data'
        self.set_auth_cookies()
        data = PermissionMocks.get_permission_builder_form_mock_data()

        # When - we submit to the update endpoint (mocked to always return success)'
        response = self.client.post('/users/%s/edit_permission/%s' % (UserMocks.USER_ID, PermissionMocks.PERMISSION_ID),
                                    data)

        # Then - we should be get successful and redirect to the manage users page'
        self.assertEqual(response.status_code, status.HTTP_302_FOUND)
        self.assertEqual(response.url, '/users/%s/manage' % UserMocks.USER_ID)

    def test_submitting_an_update_form_that_errors_on_cms_returns_error(self):
        # Given - some invalid permission update data'
        self.set_auth_cookies()
        data = PermissionMocks.get_permission_builder_invalid_form_mock_data()

        # When - we submit to the update endpoint (mocked to always return success if it gets to the api)'
        response = self.client.post('/users/%s/edit_permission/%s' % (UserMocks.USER_ID, PermissionMocks.PERMISSION_ID),
                                    data)

        # Then - we should be get failure and stay on the editor page'
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertTemplateUsed(response, 'users/permission_editor.html')

    @patch('permissions.request_handler.update_permission',
           return_value=PermissionMocks.get_unsuccessful_permission_update_response())
    def test_submitting_a_valid_update_form_that_errors_on_api_returns_error(self, mock_permission_update):
        # Given - some valid permission update data'
        self.set_auth_cookies()
        data = PermissionMocks.get_permission_builder_form_mock_data()

        # When - we submit to the update endpoint (mocked to always return failure if it gets to the api)'
        response = self.client.post('/users/%s/edit_permission/%s' % (UserMocks.USER_ID, PermissionMocks.PERMISSION_ID),
                                    data)

        # Then - we should be get server failure and stay on the editor page'
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertTemplateUsed(response, 'users/permission_editor.html')

    """ DELETE """

    def test_submitting_a_valid_delete_that_succeeds_on_api_redirects_to_the_manage_user_page(self):
        # Given - some valid delete data'
        self.set_auth_cookies()

        # When - we submit to the delete endpoint
        response = self.client.get('/users/%s/delete_permission/%s' % (UserMocks.USER_ID, PermissionMocks.PERMISSION_ID))

        # Then - we should get redirected to the manage user page
        self.assertEqual(response.status_code, status.HTTP_302_FOUND)
        self.assertEqual(response.url, '/users/%s/manage' % UserMocks.USER_ID)
示例#8
0
 def test_load_examinations_adds_a_list_of_cases_to_the_user(self):
     user = User(UserMocks.get_filled_user_dict())
     user.auth_token = SessionMocks.ACCESS_TOKEN
     user.permissions.append(Permission(PermissionMocks.get_me_permission_dict()))
     user.load_examinations(20, 1, None, None, None)
     self.assertEquals(type(user.examinations), list)