예제 #1
0
 def _remove_alias(self, entity: wdi_core.WDItemEngine,
                   objct: LiteralElement) -> wdi_core.WDItemEngine:
     lang = get_lang_from_literal(objct)
     logging.debug("Removing alias @%s of %s", lang, entity)
     curr_aliases = entity.get_aliases(lang)
     try:
         curr_aliases.remove(objct.content)
         entity.set_aliases(curr_aliases, lang, append=False)
     except ValueError:
         logging.warning(
             "Alias %s@%s does not exist for object %s. Skipping removal...",
             objct.content, lang, entity.wd_item_id)
     return entity
예제 #2
0
def _temp_route_oauth_write_test():
    # One-off test to ensure pipes are running, add an alias to WikiDP item
    identity = identify_user()
    for key in identity.keys():
        logging.info('KEY: %s VALUE: %s', key, identity.get(key))
    item = WDItemEngine(wd_item_id="Q51139559")
    item.set_aliases(['WikiDP Application'], append=True)
    # verify the api is working by getting this item
    assert item.get_label() == "Wikidata for Digital Preservation"
    wdi_login = get_wdi_login()
    # verify edit token exists, this is what WDI calls
    assert wdi_login.get_edit_token()
    assert "user" in identity.get('groups')  # verify user in user group
    # verify user in user group
    assert "autoconfirmed" in identity.get('groups')
    assert "edit" in identity.get('rights')  # verify user in user group
    assert "editpage" in identity.get('grants')  # verify user in user group
    updated = item.write(wdi_login)  # fails due to no permissions
    return jsonify(updated)
예제 #3
0
 def _set_alias(self, entity: wdi_core.WDItemEngine,
                objct: LiteralElement) -> wdi_core.WDItemEngine:
     lang = get_lang_from_literal(objct)
     logging.debug("Changing alias @%s of %s", lang, entity)
     entity.set_aliases([objct.content], lang)
     return entity