示例#1
0
    def setUp(self):
        super(TestTokenList, self).setUp()

        self.user1 = AuthUserFactory()
        self.user2 = AuthUserFactory()

        self.user1_tokens = [
            ApiOAuth2PersonalTokenFactory(owner=self.user1) for i in xrange(3)
        ]
        self.user2_tokens = [
            ApiOAuth2PersonalTokenFactory(owner=self.user2) for i in xrange(2)
        ]

        self.user1_list_url = TOKEN_LIST_URL
        self.user2_list_url = TOKEN_LIST_URL

        self.sample_data = {
            'data': {
                'type': 'tokens',
                'attributes': {
                    'name': 'A shiny new token',
                    'scopes': 'osf.full_write',
                    'owner': 'Value discarded',
                    'token_id': 'Value discarded',
                }
            }
        }
示例#2
0
    def test_download_file_with_token(self, mock_get_client):
        cas_base_url = 'http://accounts.test.test'
        client = cas.CasClient(cas_base_url)

        mock_get_client.return_value = client

        base_url = '/download/{}/'
        file = create_test_file(node=self.node, user=self.user)

        responses.add(
            responses.Response(
                responses.GET,
                '{}/oauth2/profile'.format(cas_base_url),
                body=json.dumps({'id': '{}'.format(self.user._id)}),
                status=200,
            ))

        download_url = base_url.format(file.get_guid()._id)
        token = ApiOAuth2PersonalTokenFactory(owner=self.user)
        headers = {'Authorization': str('Bearer {}'.format(token.token_id))}
        redirect = self.app.get(download_url, headers=headers)

        assert mock_get_client.called
        assert settings.WATERBUTLER_URL in redirect.location
        assert redirect.status_code == 302
 def tokens_user_two(self, user_two):
     tokens = []
     for _ in range(3):
         token = ApiOAuth2PersonalTokenFactory(owner=user_two)
         token.save()
         tokens.append(token)
     return tokens
示例#4
0
    def setUp(self):
        super(TestTokenDetail, self).setUp()

        self.user1 = AuthUserFactory()
        self.user2 = AuthUserFactory()

        self.user1_token = ApiOAuth2PersonalTokenFactory(owner=self.user1)
        self.user1_token_url = _get_token_detail_route(self.user1_token)

        self.missing_type = {
            'data': {
                'attributes': {
                    'name': 'A shiny updated token',
                    'scopes': 'osf.full_write',
                }
            }
        }

        self.incorrect_type = {
            'data': {
                'type': 'Wrong type.',
                'attributes': {
                    'name': 'A shiny updated token',
                    'scopes': 'osf.full_write',
                }
            }
        }

        self.injected_scope = {
            'data': {
                'type': 'tokens',
                'attributes': {
                    'name': 'A shiny invalid token',
                    'scopes': 'osf.admin',
                }
            }
        }

        self.nonsense_scope = {
            'data': {
                'type': 'tokens',
                'attributes': {
                    'name': 'A shiny invalid token',
                    'scopes': 'osf.nonsense',
                }
            }
        }

        self.correct = {
            'data': {
                'type': 'tokens',
                'attributes': {
                    'name': 'A shiny updated token',
                    'scopes': 'osf.full_write',
                }
            }
        }
示例#5
0
    def test_recursive_upload_retry(self, node, greg, egap_assets_path, egap_project_name):
        responses.add(
            responses.Response(
                responses.PUT,
                '{}/v1/resources/{}/providers/osfstorage/?name=test_folder&kind=folder'.format(
                    WATERBUTLER_INTERNAL_URL,
                    node._id,
                ),
                json={'data': {'attributes': {'path': 'parent'}}},
                status=201,
            )
        )
        responses.add(
            responses.Response(
                responses.PUT,
                '{}/v1/resources/{}/providers/osfstorage/parent?name=test-2.txt&kind=file'.format(
                    WATERBUTLER_INTERNAL_URL,
                    node._id,
                ),
                status=500,
            )
        )
        responses.add(
            responses.Response(
                responses.PUT,
                '{}/v1/resources/{}/providers/osfstorage/parent?name=test-2.txt&kind=file'.format(
                    WATERBUTLER_INTERNAL_URL,
                    node._id,
                ),
                json={'metadata': 'for test-2!'},
                status=201,
            )
        )
        responses.add(
            responses.Response(
                responses.PUT,
                '{}/v1/resources/{}/providers/osfstorage/?name=test-1.txt&kind=file'.format(
                    WATERBUTLER_INTERNAL_URL,
                    node._id,
                ),
                json={'metadata': 'for test-1!'},
                status=201,
            )
        )
        token = ApiOAuth2PersonalTokenFactory(owner=greg)
        token.save()
        auth = {'Authorization': 'Bearer {}'.format(token.token_id)}

        egap_project_path = os.path.join(egap_assets_path, egap_project_name, 'data', 'nonanonymous')

        metadata = recursive_upload(auth, node, egap_project_path)

        assert metadata[0] == {'metadata': 'for test-2!'}
        assert metadata[1] == {'data': {'attributes': {'path': 'parent'}}}
        assert metadata[2] == {'metadata': 'for test-1!'}
 def token_user_one(self, user_one):
     return ApiOAuth2PersonalTokenFactory(owner=user_one)
示例#7
0
 def tokens_user_two(self, user_two):
     return [
         ApiOAuth2PersonalTokenFactory(owner=user_two) for i in range(3)
     ]
 def token_user_one(self, user_one, read_scope):
     token = ApiOAuth2PersonalTokenFactory(owner=user_one)
     token.scopes.add(read_scope)
     return token
示例#9
0
def get_creator_auth_header(creator_username):
    creator = OSFUser.objects.get(username=creator_username)
    token = ApiOAuth2PersonalTokenFactory(owner=creator)
    token.save()
    return creator, {'Authorization': 'Bearer {}'.format(token.token_id)}
示例#10
0
 def tokens_user_one(self, user_one):
     return [
         ApiOAuth2PersonalTokenFactory(owner=user_one) for i in xrange(3)
     ]