def remove_did_from_followed(scope, name, account, issuer, session=None, vo='def'): """ Mark a did as not followed :param scope: The scope name. :param name: The data identifier name. :param account: The account owner. :param session: The database session in use. :param issuer: The issuer account """ kwargs = {'scope': scope, 'issuer': issuer} if not rucio.api.permission.has_permission( issuer=issuer, vo=vo, action='remove_did_from_followed', kwargs=kwargs): raise rucio.common.exception.AccessDenied( 'Account %s can not remove data identifiers from followed table' % (issuer)) scope = InternalScope(scope, vo=vo) account = InternalAccount(account, vo=vo) return did.remove_did_from_followed(scope=scope, name=name, account=account, session=session)
def test_remove_did_from_followed(self): """ DATA IDENTIFIERS (CORE): Mark a did as not followed """ tmp_scope = InternalScope('mock') dsn = 'dsn_%s' % generate_uuid() root = InternalAccount('root') add_did(scope=tmp_scope, name=dsn, type=DIDType.DATASET, account=root) add_did_to_followed(scope=tmp_scope, name=dsn, account=root) users = get_users_following_did(scope=tmp_scope, name=dsn) rows = 0 for user in users: rows += 1 assert_equal(rows, 1) remove_did_from_followed(scope=tmp_scope, name=dsn, account=root) users = get_users_following_did(scope=tmp_scope, name=dsn) rows = 0 for user in users: rows += 1 assert_equal(rows, 0)