Page MenuHomePhabricator

global -user option does not work if a oauth is used for a site
Open, Needs TriagePublic

Description

global -user option does not work if a oauth is used for a site.

for example user-config.py contains oauth settingd:

usernames['wikipedia']['test'] = 'Pywikibot-oauth'
authenticate['test.wikipedia.org'] = (
... # surely not!
)

Then a command such as py -3.13 -m pwb -user:xqt -lang:test delete -page:Main_Page leads to

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\pwb\GIT\core\pwb.py", line 40, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\pwb\GIT\core\pwb.py", line 36, in main
    runpy.run_path(str(path), run_name='__main__')
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen runpy>", line 287, in run_path
  File "<frozen runpy>", line 98, in _run_module_code
  File "<frozen runpy>", line 88, in _run_code
  File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 566, in <module>
    main()
    ~~~~^^
  File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 550, in main
    if not execute():
           ~~~~~~~^^
  File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 488, in execute
    unknown_args = pwb.handle_args(global_args)
  File "C:\pwb\GIT\core\pywikibot\bot.py", line 869, in handle_args
    pywikibot.Site()
    ~~~~~~~~~~~~~~^^
  File "C:\pwb\GIT\core\pywikibot\__init__.py", line 266, in Site
    _sites[key] = interface(code=code, fam=fam, user=user)
                  ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\pwb\GIT\core\pywikibot\site\_apisite.py", line 136, in __init__
    self.login(cookie_only=True)
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "C:\pwb\GIT\core\pywikibot\site\_apisite.py", line 421, in login
    raise NoUsernameError(error_msg)
pywikibot.exceptions.NoUsernameError: Logged in on wikipedia:test via OAuth as Pywikibot-oauth, but expect as Xqt
CRITICAL: Exiting due to uncaught exception NoUsernameError: Logged in on wikipedia:test via OAuth as Pywikibot-oauth, but expect as Xqt