def testGetProjectTransfers(self, mockRemoteStore):
     mock_requests_response = MagicMock()
     mock_data_service = mockRemoteStore.return_value.data_service
     mock_data_service.get_all_project_transfers.return_value = mock_requests_response
     ddsutil = DDSUtil(self.user)
     project_transfers_response = ddsutil.get_project_transfers()
     self.assertTrue(mock_data_service.get_all_project_transfers.called)
     self.assertEqual(project_transfers_response, mock_requests_response)
Exemple #2
0
 def testGetPprojectTransfer403Exception(self, mockRemoteStore):
     transfer_id = 'abvcca-123'
     get_project_transfer = mockRemoteStore.return_value.data_service.get_project_transfer
     get_project_transfer.side_effect = DataServiceError(
         response=Mock(status_code=403), url_suffix="", request_data=Mock())
     ddsutil = DDSUtil(self.user)
     with self.assertRaises(DDSNotRecipientException):
         ddsutil.get_project_transfer(transfer_id)
Exemple #3
0
 def testGetProjectTransfers(self, mockRemoteStore):
     mock_requests_response = MagicMock()
     mock_data_service = mockRemoteStore.return_value.data_service
     mock_data_service.get_all_project_transfers.return_value = mock_requests_response
     ddsutil = DDSUtil(self.user)
     project_transfers_response = ddsutil.get_project_transfers()
     self.assertTrue(mock_data_service.get_all_project_transfers.called)
     self.assertEqual(project_transfers_response, mock_requests_response)
 def test_auth_provider_add_user(self):
     mock_dds_user = Mock()
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.auth_provider_add_user.return_value.json.return_value = mock_dds_user
     dds_util._remote_store = mock_remote_store
     dds_user = dds_util.auth_provider_add_user(auth_provider_id='provider1', username='******')
     self.assertEqual(dds_user, mock_dds_user)
     mock_remote_store.data_service.auth_provider_add_user.assert_called_with('provider1', 'user1')
 def create(self, request, *args, **kwargs):
     if request.data.get('transfer_id'):
         raise ValidationError('Deliveries may not be created with a transfer_id, '
                               'these are generated by Duke Data Service')
     dds_util = DDSUtil(request.user)
     project_transfer = dds_util.create_project_transfer(request.data['project_id'],
                                                         request.data['to_user_id'])
     request.data['transfer_id'] = project_transfer['id']
     return super(DeliveryViewSet, self).create(request, args, kwargs)
 def test_get_users_with_filters(self):
     mock_user = Mock(name='joe')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_users.return_value = [mock_user]
     dds_util._remote_store = mock_remote_store
     users = dds_util.get_users(full_name_contains='Joe', email='*****@*****.**', username='******')
     self.assertEqual(users, [mock_user])
     mock_remote_store.data_service.get_users.assert_called_with('Joe', '*****@*****.**', 'joe')
 def test_get_users_no_filter(self):
     mock_user = Mock(name='joe')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_users.return_value = [mock_user]
     dds_util._remote_store = mock_remote_store
     users = dds_util.get_users()
     self.assertEqual(users, [mock_user])
     mock_remote_store.data_service.get_users.assert_called_with(None, None, None)
 def test_get_auth_provider(self):
     mock_provider = Mock(name='provider1')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_auth_provider.return_value.json.return_value = mock_provider
     dds_util._remote_store = mock_remote_store
     provider = dds_util.get_auth_provider('provider1')
     self.assertEqual(provider, mock_provider)
     mock_remote_store.data_service.get_auth_provider.assert_called_with('provider1')
 def test_get_auth_provider_affiliates(self):
     mock_affiliate = Mock(id='affiliate1')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_auth_provider_affiliates.return_value.json.return_value = [mock_affiliate]
     dds_util._remote_store = mock_remote_store
     affiliates = dds_util.get_auth_provider_affiliates('provider1', full_name_contains='Joe')
     self.assertEqual(affiliates, [mock_affiliate])
     mock_remote_store.data_service.get_auth_provider_affiliates.assert_called_with('provider1', 'Joe', None, None)
 def testGetProjectTransfer(self, mockRemoteStore):
     mock_requests_response = MagicMock()
     transfer_id = 'abvcca-123'
     get_project_transfer = mockRemoteStore.return_value.data_service.get_project_transfer
     get_project_transfer.return_value = mock_requests_response
     ddsutil = DDSUtil(self.user)
     project_transfer_response = ddsutil.get_project_transfer(transfer_id)
     self.assertTrue(get_project_transfer.called_with(transfer_id))
     self.assertEqual(project_transfer_response, mock_requests_response)
Exemple #11
0
 def testGetProjectTransfer(self, mockRemoteStore):
     mock_requests_response = MagicMock()
     transfer_id = 'abvcca-123'
     get_project_transfer = mockRemoteStore.return_value.data_service.get_project_transfer
     get_project_transfer.return_value = mock_requests_response
     ddsutil = DDSUtil(self.user)
     project_transfer_response = ddsutil.get_project_transfer(transfer_id)
     self.assertTrue(get_project_transfer.called_with(transfer_id))
     self.assertEqual(project_transfer_response, mock_requests_response)
Exemple #12
0
 def testGetEmail(self, mockRemoteStore):
     email = '*****@*****.**'
     # Mock a remote user object, and bind it to fetch_user
     remote_user = Mock()
     remote_user.email = email
     instance = mockRemoteStore.return_value
     instance.fetch_user.return_value = remote_user
     ddsutil = DDSUtil(self.user)
     self.assertEqual(email, ddsutil.get_remote_user(self.user_id).email)
     self.assertTrue(instance.fetch_user.called)
Exemple #13
0
 def test_get_auth_provider(self):
     mock_provider = Mock(name='provider1')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_auth_provider.return_value.json.return_value = mock_provider
     dds_util._remote_store = mock_remote_store
     provider = dds_util.get_auth_provider('provider1')
     self.assertEqual(provider, mock_provider)
     mock_remote_store.data_service.get_auth_provider.assert_called_with(
         'provider1')
 def testGetEmail(self, mockRemoteStore):
     email = '*****@*****.**'
     # Mock a remote user object, and bind it to fetch_user
     remote_user = Mock()
     remote_user.email = email
     instance = mockRemoteStore.return_value
     instance.fetch_user.return_value = remote_user
     ddsutil = DDSUtil(self.user)
     self.assertEqual(email, ddsutil.get_remote_user(self.user_id).email)
     self.assertTrue(instance.fetch_user.called)
Exemple #15
0
 def create(self, request, *args, **kwargs):
     if request.data.get('transfer_id'):
         raise ValidationError(
             'Deliveries may not be created with a transfer_id, '
             'these are generated by Duke Data Service')
     dds_util = DDSUtil(request.user)
     project_transfer = dds_util.create_project_transfer(
         request.data['project_id'], request.data['to_user_id'])
     request.data['transfer_id'] = project_transfer['id']
     return super(DeliveryViewSet, self).create(request, args, kwargs)
Exemple #16
0
 def test_get_users_no_filter(self):
     mock_user = Mock(name='joe')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_users.return_value = [mock_user]
     dds_util._remote_store = mock_remote_store
     users = dds_util.get_users()
     self.assertEqual(users, [mock_user])
     mock_remote_store.data_service.get_users.assert_called_with(
         None, None, None)
 def testGetProject(self, mockRemoteStore):
     project_id = '8677-11231-44414-4442'
     project_name = 'Project ABC'
     remote_project = Mock()
     remote_project.name = project_name
     instance = mockRemoteStore.return_value
     instance.fetch_remote_project_by_id.return_value = remote_project
     ddsutil = DDSUtil(self.user)
     self.assertEqual(ddsutil.get_remote_project(project_id).name, project_name)
     self.assertTrue(instance.fetch_remote_project_by_id.called)
Exemple #18
0
 def test_auth_provider_add_user(self):
     mock_dds_user = Mock()
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.auth_provider_add_user.return_value.json.return_value = mock_dds_user
     dds_util._remote_store = mock_remote_store
     dds_user = dds_util.auth_provider_add_user(
         auth_provider_id='provider1', username='******')
     self.assertEqual(dds_user, mock_dds_user)
     mock_remote_store.data_service.auth_provider_add_user.assert_called_with(
         'provider1', 'user1')
Exemple #19
0
 def testGetProject(self, mockRemoteStore):
     project_id = '8677-11231-44414-4442'
     project_name = 'Project ABC'
     remote_project = Mock()
     remote_project.name = project_name
     instance = mockRemoteStore.return_value
     instance.fetch_remote_project_by_id.return_value = remote_project
     ddsutil = DDSUtil(self.user)
     self.assertEqual(
         ddsutil.get_remote_project(project_id).name, project_name)
     self.assertTrue(instance.fetch_remote_project_by_id.called)
Exemple #20
0
 def test_get_project_children(self):
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     dds_util._remote_store = mock_remote_store
     mock_children = [Mock()]
     mock_remote_store.data_service.get_project_children.return_value = mock_children
     children = dds_util.get_project_children('123')
     self.assertEqual(children, mock_children)
     self.assertEqual(
         mock_remote_store.data_service.get_project_children.call_args,
         call('123', ''))
Exemple #21
0
 def test_get_users_with_filters(self):
     mock_user = Mock(name='joe')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_users.return_value = [mock_user]
     dds_util._remote_store = mock_remote_store
     users = dds_util.get_users(full_name_contains='Joe',
                                email='*****@*****.**',
                                username='******')
     self.assertEqual(users, [mock_user])
     mock_remote_store.data_service.get_users.assert_called_with(
         'Joe', '*****@*****.**', 'joe')
 def test_get_user_project_permission(self):
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_user_project_permission.return_value.json.return_value = {
         'auth_role': {
             'id': PROJECT_ADMIN_ID
         }
     }
     dds_util._remote_store = mock_remote_store
     resp = dds_util.get_user_project_permission(project_id='123', user_id='456')
     self.assertEqual(resp['auth_role']['id'], PROJECT_ADMIN_ID)
     mock_remote_store.data_service.get_user_project_permission.assert_called_with('123', '456')
Exemple #23
0
 def cancel(self, request, pk=None):
     delivery = self.get_object()
     self.prevent_null_email_template_set()
     if delivery.state != State.NEW and delivery.state != State.NOTIFIED:
          raise ValidationError('Only deliveries in new and notified state can be canceled.')
     dds_util = DDSUtil(request.user)
     dds_util.cancel_project_transfer(delivery.transfer_id)
     message_factory = DDSMessageFactory(delivery, request.user)
     message = message_factory.make_canceled_message()
     message.send()
     delivery.mark_canceled()
     return self.retrieve(request)
Exemple #24
0
 def test_get_auth_provider_affiliates(self):
     mock_affiliate = Mock(id='affiliate1')
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_auth_provider_affiliates.return_value.json.return_value = [
         mock_affiliate
     ]
     dds_util._remote_store = mock_remote_store
     affiliates = dds_util.get_auth_provider_affiliates(
         'provider1', full_name_contains='Joe')
     self.assertEqual(affiliates, [mock_affiliate])
     mock_remote_store.data_service.get_auth_provider_affiliates.assert_called_with(
         'provider1', 'Joe', None, None)
Exemple #25
0
 def test_get_project_permissions(self):
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     mock_remote_store.data_service.get_project_permissions.return_value.json.return_value = {
         'auth_role': {
             'id': PROJECT_ADMIN_ID
         }
     }
     dds_util._remote_store = mock_remote_store
     resp = dds_util.get_project_permissions(project_id='123')
     self.assertEqual(resp['auth_role']['id'], PROJECT_ADMIN_ID)
     mock_remote_store.data_service.get_project_permissions.assert_called_with(
         '123')
Exemple #26
0
 def cancel(self, request, pk=None):
     delivery = self.get_object()
     self.prevent_null_email_template_set()
     if delivery.state != State.NEW and delivery.state != State.NOTIFIED:
         raise ValidationError(
             'Only deliveries in new and notified state can be canceled.')
     dds_util = DDSUtil(request.user)
     dds_util.cancel_project_transfer(delivery.transfer_id)
     message_factory = DDSMessageFactory(delivery, request.user)
     message = message_factory.make_canceled_message()
     message.send()
     delivery.mark_canceled()
     return self.retrieve(request)
Exemple #27
0
 def get_or_register_user(self, request, pk):
     dds_util = DDSUtil(self.request.user)
     auth_provider_id = self._get_auth_provider_id()
     dds_user = self._ds_operation(DDSUser.get_or_register_user, dds_util,
                                   auth_provider_id, pk)
     serializer = DDSUserSerializer(dds_user)
     return Response(serializer.data, status=status.HTTP_201_CREATED)
Exemple #28
0
 def permissions(self, request, pk=None):
     dds_util = DDSUtil(request.user)
     user_id = request.query_params.get('user')
     project_permissions = self._ds_operation(
         DDSProjectPermissions.fetch_list, dds_util, pk, user_id)
     serializer = DDSProjectPermissionSerializer(project_permissions,
                                                 many=True)
     return Response(serializer.data, status=status.HTTP_200_OK)
Exemple #29
0
 def get_queryset(self):
     dds_util = DDSUtil(self.request.user)
     auth_provider_id = self._get_auth_provider_id()
     full_name_contains = self.request.query_params.get(
         'full_name_contains')
     email = self.request.query_params.get('email', None)
     username = self.request.query_params.get('username', None)
     return self._ds_operation(DDSAffiliate.fetch_list, dds_util,
                               auth_provider_id, full_name_contains, email,
                               username)
Exemple #30
0
    def get_queryset(self):
        full_name_contains = self.request.query_params.get(
            'full_name_contains', None)
        email = self.request.query_params.get('email', None)
        username = self.request.query_params.get('username', None)
        recent = self.request.query_params.get('recent', None)

        dds_util = DDSUtil(self.request.user)
        if recent:
            if full_name_contains:
                msg = "Query parameter 'full_name_contains' not allowed when specifying the 'recent' query parameter."
                raise BadRequestException(msg)
            return self._get_recent_delivery_users(dds_util)
        else:
            return self._ds_operation(DDSUser.fetch_list, dds_util,
                                      full_name_contains, email, username)
Exemple #31
0
 def get_object(self):
     dds_util = DDSUtil(self.request.user)
     auth_provider_id = self._get_auth_provider_id()
     uid = self.kwargs.get('pk')
     return self._ds_operation(DDSAffiliate.fetch_one, dds_util,
                               auth_provider_id, uid)
Exemple #32
0
 def _get_auth_provider_id(self):
     default_auth_provider_id = DDSUtil.get_openid_auth_provider_id()
     auth_provider_id = self.request.query_params.get(
         'auth_provider_id', default_auth_provider_id)
     return auth_provider_id
 def testAddUser(self, mockRemoteStore):
     instance = mockRemoteStore.return_value
     instance.set_user_project_permission = Mock()
     ddsutil = DDSUtil(self.user)
     ddsutil.add_user('userid','projectid','auth_role')
     self.assertTrue(instance.set_user_project_permission.called)
Exemple #34
0
 def get_queryset(self):
     dds_util = DDSUtil(self.request.user)
     return self._ds_operation(DDSAuthProvider.fetch_list, dds_util)
Exemple #35
0
 def get_object(self):
     provider_id = self.kwargs.get('pk')
     dds_util = DDSUtil(self.request.user)
     return self._ds_operation(DDSAuthProvider.fetch_one, dds_util,
                               provider_id)
Exemple #36
0
 def testAddUser(self, mockRemoteStore):
     instance = mockRemoteStore.return_value
     instance.set_user_project_permission = Mock()
     ddsutil = DDSUtil(self.user)
     ddsutil.add_user('userid', 'projectid', 'auth_role')
     self.assertTrue(instance.set_user_project_permission.called)
Exemple #37
0
 def get_object(self):
     dds_project_transfer_id = self.kwargs.get('pk')
     dds_util = DDSUtil(self.request.user)
     return self._ds_operation(DDSProjectTransfer.fetch_one, dds_util,
                               dds_project_transfer_id)
 def testRemoveUser(self, mockRemoteStore):
     instance = mockRemoteStore.return_value
     instance.set_user_project_permission = Mock()
     ddsutil = DDSUtil(self.user)
     ddsutil.remove_user('userid','projectid')
     self.assertTrue(instance.revoke_user_project_permission.called)
 def test_cancel_project_transfer(self):
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     dds_util._remote_store = mock_remote_store
     dds_util.cancel_project_transfer(transfer_id='123')
Exemple #40
0
 def current_duke_ds_user(self, request):
     dds_util = DDSUtil(self.request.user)
     remote_dds_user = dds_util.get_current_user()
     serializer = DDSUserSerializer(remote_dds_user)
     return Response(serializer.data, status=status.HTTP_200_OK)
 def test_get_project_url(self):
     dds_util = DDSUtil(user=Mock())
     project_url = dds_util.get_project_url('123')
     self.assertEqual(project_url, 'https://portal.example.com/#/project/123')
Exemple #42
0
 def testRemoveUser(self, mockRemoteStore):
     instance = mockRemoteStore.return_value
     instance.set_user_project_permission = Mock()
     ddsutil = DDSUtil(self.user)
     ddsutil.remove_user('userid', 'projectid')
     self.assertTrue(instance.revoke_user_project_permission.called)
Exemple #43
0
 def summary(self, request, pk=None):
     dds_util = DDSUtil(request.user)
     project_summary = self._ds_operation(DDSProjectSummary.fetch_one,
                                          dds_util, pk)
     serializer = DDSProjectSummarySerializer(project_summary)
     return Response(serializer.data, status=status.HTTP_200_OK)
Exemple #44
0
 def get_queryset(self):
     dds_util = DDSUtil(self.request.user)
     return self._ds_operation(DDSProjectTransfer.fetch_list, dds_util)
Exemple #45
0
 def testFailsWithoutUser(self):
     with self.assertRaises(ValueError):
         ddsutil = DDSUtil('')
         ddsutil.remote_store
Exemple #46
0
 def current_duke_ds_user(self, request):
     dds_util = DDSUtil(self.request.user)
     remote_dds_user = dds_util.get_current_user()
     serializer = DDSUserSerializer(remote_dds_user)
     return Response(serializer.data, status=status.HTTP_200_OK)
Exemple #47
0
 def _get_auth_provider_id(self):
     default_auth_provider_id = DDSUtil.get_openid_auth_provider_id()
     auth_provider_id = self.request.query_params.get('auth_provider_id', default_auth_provider_id)
     return auth_provider_id
Exemple #48
0
 def test_cancel_project_transfer(self):
     dds_util = DDSUtil(user=Mock())
     mock_remote_store = Mock()
     dds_util._remote_store = mock_remote_store
     dds_util.cancel_project_transfer(transfer_id='123')