def test_set_table_acl_with_empty_signed_identifier( self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=tables_primary_storage_account_key, endpoint=account_url) table = self._create_table(ts) try: dt = datetime(2021, 6, 8, 2, 10, 9) signed_identifiers = { 'null': None, 'empty': TableAccessPolicy(start=None, expiry=None, permission=None), 'partial': TableAccessPolicy(permission='r'), 'full': TableAccessPolicy(start=dt, expiry=dt, permission='r') } table.set_table_access_policy(signed_identifiers) acl = table.get_table_access_policy() assert acl is not None assert len(acl) == 4 assert acl['null'] is None assert acl['empty'] is None assert acl['partial'] is not None assert acl['partial'].permission == 'r' assert acl['partial'].expiry is None assert acl['partial'].start is None assert acl['full'] is not None assert acl['full'].permission == 'r' self._assert_policy_datetime(dt, acl['full'].expiry) self._assert_policy_datetime(dt, acl['full'].start) signed_identifiers.pop('empty') signed_identifiers['partial'] = None table.set_table_access_policy(signed_identifiers) acl = table.get_table_access_policy() assert acl is not None assert len(acl) == 3 assert 'empty' not in acl assert acl['null'] is None assert acl['partial'] is None assert acl['full'] is not None assert acl['full'].permission == 'r' self._assert_policy_datetime(dt, acl['full'].expiry) self._assert_policy_datetime(dt, acl['full'].start) finally: ts.delete_table(table.table_name)
async def test_set_table_acl_with_signed_identifiers( self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(url, credential=tables_primary_storage_account_key) table = await self._create_table(ts) client = ts.get_table_client(table_name=table.table_name) # Act start = datetime(2021, 6, 8, 2, 10, 9) - timedelta(minutes=5) expiry = datetime(2021, 6, 8, 2, 10, 9) + timedelta(hours=1) identifiers = { 'testid': TableAccessPolicy(start=start, expiry=expiry, permission=TableSasPermissions(read=True)) } try: await client.set_table_access_policy(signed_identifiers=identifiers ) # Assert acl = await client.get_table_access_policy() assert acl is not None assert len(acl) == 1 assert acl.get('testid') self._assert_policy_datetime(start, acl['testid'].start) self._assert_policy_datetime(expiry, acl['testid'].expiry) assert acl['testid'].permission == 'r' finally: await ts.delete_table(table.table_name)