def test_metadata_admin_pems(agave, credentials): # first, lets add a new metadata using the normal user's client name = 'python-sdk-test-metadata-admin-pems' value = 'test value' d = {'name': name, 'value': value} md = agave.meta.addMetadata(body=json.dumps(d)) uuid = md.uuid # let's make sure it is there md2 = agave.meta.listMetadata(q=json.dumps({'name': name})) assert uuid in [md.uuid for md in md2] # now, create a new client representing the admin ag = a.Tapis(username=credentials.get('admin_username'), password=credentials.get('admin_password'), api_server=credentials.get('apiserver'), api_key=credentials.get('apikey'), api_secret=credentials.get('apisecret'), token=credentials.get('token'), refresh_token=credentials.get('refresh_token'), verify=credentials.get('verify_certs', True)) # let's check that the admin can see our metadata md2 = ag.meta.listMetadata(q=json.dumps({'name': name})) assert uuid in [md.uuid for md in md2] # now, explicitly turn off 'implicit' permissions md3 = ag.meta.listMetadata(q=json.dumps({'name': name}), privileged=False) assert uuid not in [md.uuid for md in md3] # finally, delete the original metadata agave.meta.deleteMetadata(uuid=uuid)
def agave(credentials): aga = a.Tapis(username=credentials.get('username'), password=credentials.get('password'), api_server=credentials.get('apiserver'), api_key=credentials.get('apikey'), api_secret=credentials.get('apisecret'), token=credentials.get('token'), refresh_token=credentials.get('refresh_token'), verify=credentials.get('verify_certs', True)) return aga
def test_token_access(credentials): # create a fresh client ag = a.Tapis(username=credentials.get('username'), password=credentials.get('password'), api_server=credentials.get('apiserver'), api_key=credentials.get('apikey'), api_secret=credentials.get('apisecret'), token=credentials.get('token'), refresh_token=credentials.get('refresh_token'), verify=credentials.get('verify_certs', True)) # force a token refresh token = ag.token.refresh() # now, create a new client using just the token token_client = a.Tapis(api_server=credentials['apiserver'], token=token, verify=credentials.get('verify_certs', True)) # make sure the new client works apps = token_client.apps.list() for app in apps: validate_app(app)
def test_token_callback(agave, credentials): def sample_token_callback(**kwargs): global token_callback_calls token_callback_calls += 1 assert kwargs['access_token'] assert kwargs['refresh_token'] assert kwargs['created_at'] assert kwargs['expires_at'] # create a client with a token callback: ag = a.Tapis(username=credentials.get('username'), password=credentials.get('password'), api_server=credentials.get('apiserver'), api_key=credentials.get('apikey'), api_secret=credentials.get('apisecret'), verify=credentials.get('verify_certs', True), token_callback=sample_token_callback) # once created, let's force a refresh ag.token.refresh() global token_callback_calls assert token_callback_calls >= 1