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', } } }
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
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', } } }
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)
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
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)}
def tokens_user_one(self, user_one): return [ ApiOAuth2PersonalTokenFactory(owner=user_one) for i in xrange(3) ]