diff --git a/iam/api-client/access.py b/iam/api-client/access.py
index 337ae80ab7a..de228e8b6cc 100644
--- a/iam/api-client/access.py
+++ b/iam/api-client/access.py
@@ -1,5 +1,3 @@
-# !/usr/bin/env python
-#
 # Copyright 2018 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,7 +29,6 @@
 def get_policy(project_id):
     """Gets IAM policy for a project."""
 
-    # pylint: disable=no-member
     credentials = service_account.Credentials.from_service_account_file(
         filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
         scopes=['https://www.googleapis.com/auth/cloud-platform'])
@@ -84,7 +81,6 @@ def modify_policy_remove_member(policy, role, member):
 def set_policy(project_id, policy):
     """Sets IAM policy for a project."""
 
-    # pylint: disable=no-member
     credentials = service_account.Credentials.from_service_account_file(
         filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
         scopes=['https://www.googleapis.com/auth/cloud-platform'])
@@ -100,6 +96,31 @@ def set_policy(project_id, policy):
 # [END iam_set_policy]
 
 
+# [START iam_test_permissions]
+def test_permissions(project_id):
+    """Tests IAM permissions of the caller"""
+
+    credentials = service_account.Credentials.from_service_account_file(
+        filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
+        scopes=['https://www.googleapis.com/auth/cloud-platform'])
+    service = googleapiclient.discovery.build(
+        'cloudresourcemanager', 'v1', credentials=credentials)
+
+    permissions = {
+        "permissions": [
+            "resourcemanager.projects.get",
+            "resourcemanager.projects.delete"
+        ]
+    }
+
+    request = service.projects().testIamPermissions(
+        resource=project_id, body=permissions)
+    returnedPermissions = request.execute()
+    print(returnedPermissions)
+    return returnedPermissions
+# [END iam_test_permissions]
+
+
 def main():
     parser = argparse.ArgumentParser(
         description=__doc__,
@@ -140,6 +161,11 @@ def main():
     set_parser.add_argument('project_id')
     set_parser.add_argument('policy')
 
+    # Test permissions
+    test_permissions_parser = subparsers.add_parser(
+        'test_permissions', help=get_policy.__doc__)
+    test_permissions_parser.add_argument('project_id')
+
     args = parser.parse_args()
 
     if args.command == 'get':
@@ -152,6 +178,8 @@ def main():
         modify_policy_remove_member(args.policy, args.role, args.member)
     elif args.command == 'add_binding':
         modify_policy_add_role(args.policy, args.role, args.member)
+    elif args.command == 'test_permissions':
+        test_permissions(args.project_id)
 
 
 if __name__ == '__main__':
diff --git a/iam/api-client/access_test.py b/iam/api-client/access_test.py
index fc73474c87b..360393c83bc 100644
--- a/iam/api-client/access_test.py
+++ b/iam/api-client/access_test.py
@@ -50,6 +50,10 @@ def test_access(capsys):
     out, _ = capsys.readouterr()
     assert u'etag' in out
 
+    access.test_permissions(project_id)
+    out, _ = capsys.readouterr()
+    assert u'permissions' in out
+
     # deleting the service account created above
     service_accounts.delete_service_account(
         email)