@@ -601,6 +601,57 @@ def test_set_iam_policy_w_alternate_client(self):
601601 self .assertEqual (req ['path' ], '/%s' % PATH )
602602 self .assertEqual (req ['data' ], {})
603603
604+ def test_test_iam_permissions_w_bound_client (self ):
605+ TOPIC_NAME = 'topic_name'
606+ PROJECT = 'PROJECT'
607+ PATH = 'projects/%s/topics/%s:testIamPermissions' % (
608+ PROJECT , TOPIC_NAME )
609+ ROLES = ['roles/reader' , 'roles/writer' , 'roles/owner' ]
610+ REQUESTED = {
611+ 'permissions' : ROLES ,
612+ }
613+ RESPONSE = {
614+ 'permissions' : ROLES [:- 1 ],
615+ }
616+ conn = _Connection (RESPONSE )
617+ CLIENT = _Client (project = PROJECT , connection = conn )
618+ topic = self ._makeOne (TOPIC_NAME , client = CLIENT )
619+
620+ allowed = topic .test_iam_permissions (ROLES )
621+
622+ self .assertEqual (allowed , ROLES [:- 1 ])
623+ self .assertEqual (len (conn ._requested ), 1 )
624+ req = conn ._requested [0 ]
625+ self .assertEqual (req ['method' ], 'POST' )
626+ self .assertEqual (req ['path' ], '/%s' % PATH )
627+ self .assertEqual (req ['data' ], REQUESTED )
628+
629+ def test_test_iam_permissions_w_alternate_client (self ):
630+ TOPIC_NAME = 'topic_name'
631+ PROJECT = 'PROJECT'
632+ PATH = 'projects/%s/topics/%s:testIamPermissions' % (
633+ PROJECT , TOPIC_NAME )
634+ ROLES = ['roles/reader' , 'roles/writer' , 'roles/owner' ]
635+ REQUESTED = {
636+ 'permissions' : ROLES ,
637+ }
638+ RESPONSE = {}
639+ conn1 = _Connection ()
640+ CLIENT1 = _Client (project = PROJECT , connection = conn1 )
641+ conn2 = _Connection (RESPONSE )
642+ CLIENT2 = _Client (project = PROJECT , connection = conn2 )
643+ topic = self ._makeOne (TOPIC_NAME , client = CLIENT1 )
644+
645+ allowed = topic .test_iam_permissions (ROLES , client = CLIENT2 )
646+
647+ self .assertEqual (len (allowed ), 0 )
648+ self .assertEqual (len (conn1 ._requested ), 0 )
649+ self .assertEqual (len (conn2 ._requested ), 1 )
650+ req = conn2 ._requested [0 ]
651+ self .assertEqual (req ['method' ], 'POST' )
652+ self .assertEqual (req ['path' ], '/%s' % PATH )
653+ self .assertEqual (req ['data' ], REQUESTED )
654+
604655
605656class TestBatch (unittest2 .TestCase ):
606657
0 commit comments