Page MenuHomePhabricator

bot suggests it doesn't have a delete right while it has
Closed, InvalidPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • I am a sysop on Commons, logged by this account

I suppose something is not correct here (init.py - self.site.has_right('delete')):

@PAWS:~$ pwb.py login
Logged in on commons:commons as Rubin16.

@PAWS:~$ pwb.py delete -page:User:Rubin16/test1 -v -debug
Found 1 commons:commons processes running, including this one.

=== Pywikibot framework v6.3.0 -- Logging header ===
COMMAND: ['/srv/paws/pwb/scripts/delete.py', '-page:User:Rubin16/test1', '-v', '-debug']
DATE: 2021-06-12 18:01:41.285304 UTC
VERSION: [https] r-pywikibot-core.git (f7d9583, g15097, 2021/06/10, 16:57:16, n/a)
SYSTEM: posix.uname_result(sysname='Linux', nodename='jupyter--52ubin16', release='4.19.0-14-amd64', version='#1 SMP Debian 4.19.171-2 (2021-01-30)', machine='x86_64')
CONFIG FILE DIR: /srv/paws
PACKAGES:
  _brotli (/srv/paws/lib/python3.8/site-packages/brotli/_brotli.abi3.so) = ??
  _bz2 (/usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so) = ??
  _cffi_backend (/srv/paws/lib/python3.8/site-packages/_cffi_backend.cpython-38-x86_64-linux-gnu.so) = 1.14.5
  _ctypes (/usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so) = 1.1.0
  _cython_0_29_22 ([path unknown]) = ??
  _decimal (/usr/lib/python3.8/lib-dynload/_decimal.cpython-38-x86_64-linux-gnu.so) = 1.70
  _distutils_hack (/srv/paws/lib/python3.8/site-packages/_distutils_hack) = ??
  _frozen_importlib (/usr/lib/python3.8/importlib/_bootstrap.py) = ??
  _frozen_importlib_external (/usr/lib/python3.8/importlib/_bootstrap_external.py) = ??
  _hashlib (/usr/lib/python3.8/lib-dynload/_hashlib.cpython-38-x86_64-linux-gnu.so) = ??
  _json (/usr/lib/python3.8/lib-dynload/_json.cpython-38-x86_64-linux-gnu.so) = ??
  _lzma (/usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so) = ??
  _opcode (/usr/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so) = ??
  _queue (/usr/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so) = ??
  _ssl (/usr/lib/python3.8/lib-dynload/_ssl.cpython-38-x86_64-linux-gnu.so) = ??
  _uuid (/usr/lib/python3.8/lib-dynload/_uuid.cpython-38-x86_64-linux-gnu.so) = ??
  blinker (/srv/paws/lib/python3.8/site-packages/blinker) = 1.4
  brotli (/srv/paws/lib/python3.8/site-packages/brotli) = ??
  bs4 (/srv/paws/lib/python3.8/site-packages/bs4) = 4.9.3
  certifi (/srv/paws/lib/python3.8/site-packages/certifi) = 2020.12.05
  chardet (/srv/paws/lib/python3.8/site-packages/chardet) = 4.0.0
  concurrent (/usr/lib/python3.8/concurrent) = ??
  cryptography (/srv/paws/lib/python3.8/site-packages/cryptography) = 3.4.7
  ctypes (/usr/lib/python3.8/ctypes) = 1.1.0
  cython_runtime ([path unknown]) = ??
  decimal (/usr/lib/python3.8/decimal.py) = 1.70
  distutils (/usr/lib/python3.8/distutils) = 3.8.5
  email (/usr/lib/python3.8/email) = ??
  encodings (/usr/lib/python3.8/encodings) = ??
  html (/usr/lib/python3.8/html) = ??
  http (/usr/lib/python3.8/http) = ??
  idna (/srv/paws/lib/python3.8/site-packages/idna) = 2.10
  importlib (/usr/lib/python3.8/importlib) = ??
  ipaddress (/usr/lib/python3.8/ipaddress.py) = 1.0
  json (/usr/lib/python3.8/json) = 2.0.9
  jwt (/srv/paws/lib/python3.8/site-packages/jwt) = 1.7.1
  logging (/usr/lib/python3.8/logging) = 0.5.1.2
  lxml (/srv/paws/lib/python3.8/site-packages/lxml) = 4.6.3
  mpl_toolkits (/srv/paws/lib/python3.8/site-packages/mpl_toolkits) = ??
  mwoauth (/srv/paws/lib/python3.8/site-packages/mwoauth) = 0.3.7
  mwparserfromhell (/srv/paws/lib/python3.8/site-packages/mwparserfromhell) = 0.6.2
  oauthlib (/srv/paws/lib/python3.8/site-packages/oauthlib) = 3.1.0
  pkg_resources (/srv/paws/lib/python3.8/site-packages/pkg_resources) = ??
  platform (/usr/lib/python3.8/platform.py) = 1.0.8
  re (/usr/lib/python3.8/re.py) = 2.2.1
  requests (/srv/paws/lib/python3.8/site-packages/requests) = 2.25.1
  requests_oauthlib (/srv/paws/lib/python3.8/site-packages/requests_oauthlib) = 1.3.0
  ruamel (/srv/paws/lib/python3.8/site-packages/ruamel) = ??
  setuptools (/srv/paws/lib/python3.8/site-packages/setuptools) = 57.0.0
  six (/srv/paws/lib/python3.8/site-packages/six.py) = 1.16.0
  soupsieve (/srv/paws/lib/python3.8/site-packages/soupsieve) = 2.2.1
  termios (/usr/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so) = ??
  urllib (/usr/lib/python3.8/urllib) = ??
  urllib3 (/srv/paws/lib/python3.8/site-packages/urllib3) = 1.26.5
  xml (/usr/lib/python3.8/xml) = ??
  zipimport ([path unknown]) = ??
MODULES:
  2021-06-12 17:33:14 /srv/paws/pwb/scripts/delete.py
  2021-06-12 17:33:14 /srv/paws/pwb/setup.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/__metadata__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/logging.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/tools/_unidata.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/tools/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/backports.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/config.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/exceptions.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/_wbtypes.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/daemonize.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/plural.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/i18n.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/comms/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/comms/http.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/version.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/bot_choice.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/tools/_logging.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/userinterfaces/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/transliteration.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/_interface_base.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/terminal_interface_base.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/tools/formatter.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/terminal_interface_unix.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/terminal_interface.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/bot.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/tools/chars.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/diff.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/family.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/data/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/login.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/textlib.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/data/api.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_namespace.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/throttle.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_basesite.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_decorators.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/echo.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_extensions.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_generators.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_interwikimap.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_siteinfo.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_tokenwallet.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_apisite.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_datasite.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_obsoletesites.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/_collections.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/_decorators.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/_revision.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/date.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/xmlreader.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/proofreadpage.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/pagegenerators.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/families/commons_family.py
=========================================================

=== Pywikibot framework v6.3.0 -- Logging header ===
COMMAND: ['/srv/paws/pwb/scripts/delete.py', '-page:User:Rubin16/test1', '-v', '-debug']
DATE: 2021-06-12 18:01:41.657877 UTC
VERSION: [https] r-pywikibot-core.git (f7d9583, g15097, 2021/06/10, 16:57:16, n/a)
SYSTEM: posix.uname_result(sysname='Linux', nodename='jupyter--52ubin16', release='4.19.0-14-amd64', version='#1 SMP Debian 4.19.171-2 (2021-01-30)', machine='x86_64')
CONFIG FILE DIR: /srv/paws
PACKAGES:
  _brotli (/srv/paws/lib/python3.8/site-packages/brotli/_brotli.abi3.so) = ??
  _bz2 (/usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so) = ??
  _cffi_backend (/srv/paws/lib/python3.8/site-packages/_cffi_backend.cpython-38-x86_64-linux-gnu.so) = 1.14.5
  _ctypes (/usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so) = 1.1.0
  _cython_0_29_22 ([path unknown]) = ??
  _decimal (/usr/lib/python3.8/lib-dynload/_decimal.cpython-38-x86_64-linux-gnu.so) = 1.70
  _distutils_hack (/srv/paws/lib/python3.8/site-packages/_distutils_hack) = ??
  _frozen_importlib (/usr/lib/python3.8/importlib/_bootstrap.py) = ??
  _frozen_importlib_external (/usr/lib/python3.8/importlib/_bootstrap_external.py) = ??
  _hashlib (/usr/lib/python3.8/lib-dynload/_hashlib.cpython-38-x86_64-linux-gnu.so) = ??
  _json (/usr/lib/python3.8/lib-dynload/_json.cpython-38-x86_64-linux-gnu.so) = ??
  _lzma (/usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so) = ??
  _opcode (/usr/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so) = ??
  _queue (/usr/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so) = ??
  _ssl (/usr/lib/python3.8/lib-dynload/_ssl.cpython-38-x86_64-linux-gnu.so) = ??
  _uuid (/usr/lib/python3.8/lib-dynload/_uuid.cpython-38-x86_64-linux-gnu.so) = ??
  blinker (/srv/paws/lib/python3.8/site-packages/blinker) = 1.4
  brotli (/srv/paws/lib/python3.8/site-packages/brotli) = ??
  bs4 (/srv/paws/lib/python3.8/site-packages/bs4) = 4.9.3
  certifi (/srv/paws/lib/python3.8/site-packages/certifi) = 2020.12.05
  chardet (/srv/paws/lib/python3.8/site-packages/chardet) = 4.0.0
  concurrent (/usr/lib/python3.8/concurrent) = ??
  cryptography (/srv/paws/lib/python3.8/site-packages/cryptography) = 3.4.7
  ctypes (/usr/lib/python3.8/ctypes) = 1.1.0
  cython_runtime ([path unknown]) = ??
  decimal (/usr/lib/python3.8/decimal.py) = 1.70
  distutils (/usr/lib/python3.8/distutils) = 3.8.5
  email (/usr/lib/python3.8/email) = ??
  encodings (/usr/lib/python3.8/encodings) = ??
  html (/usr/lib/python3.8/html) = ??
  http (/usr/lib/python3.8/http) = ??
  idna (/srv/paws/lib/python3.8/site-packages/idna) = 2.10
  importlib (/usr/lib/python3.8/importlib) = ??
  ipaddress (/usr/lib/python3.8/ipaddress.py) = 1.0
  json (/usr/lib/python3.8/json) = 2.0.9
  jwt (/srv/paws/lib/python3.8/site-packages/jwt) = 1.7.1
  logging (/usr/lib/python3.8/logging) = 0.5.1.2
  lxml (/srv/paws/lib/python3.8/site-packages/lxml) = 4.6.3
  mpl_toolkits (/srv/paws/lib/python3.8/site-packages/mpl_toolkits) = ??
  mwoauth (/srv/paws/lib/python3.8/site-packages/mwoauth) = 0.3.7
  mwparserfromhell (/srv/paws/lib/python3.8/site-packages/mwparserfromhell) = 0.6.2
  oauthlib (/srv/paws/lib/python3.8/site-packages/oauthlib) = 3.1.0
  pkg_resources (/srv/paws/lib/python3.8/site-packages/pkg_resources) = ??
  platform (/usr/lib/python3.8/platform.py) = 1.0.8
  re (/usr/lib/python3.8/re.py) = 2.2.1
  requests (/srv/paws/lib/python3.8/site-packages/requests) = 2.25.1
  requests_oauthlib (/srv/paws/lib/python3.8/site-packages/requests_oauthlib) = 1.3.0
  ruamel (/srv/paws/lib/python3.8/site-packages/ruamel) = ??
  setuptools (/srv/paws/lib/python3.8/site-packages/setuptools) = 57.0.0
  six (/srv/paws/lib/python3.8/site-packages/six.py) = 1.16.0
  soupsieve (/srv/paws/lib/python3.8/site-packages/soupsieve) = 2.2.1
  termios (/usr/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so) = ??
  urllib (/usr/lib/python3.8/urllib) = ??
  urllib3 (/srv/paws/lib/python3.8/site-packages/urllib3) = 1.26.5
  xml (/usr/lib/python3.8/xml) = ??
  zipimport ([path unknown]) = ??
MODULES:
  2021-06-12 17:33:14 /srv/paws/pwb/scripts/delete.py
  2021-06-12 17:33:14 /srv/paws/pwb/setup.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/__metadata__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/logging.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/tools/_unidata.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/tools/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/backports.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/config.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/exceptions.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/_wbtypes.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/daemonize.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/plural.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/i18n.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/comms/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/comms/http.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/version.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/bot_choice.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/tools/_logging.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/userinterfaces/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/transliteration.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/_interface_base.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/terminal_interface_base.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/tools/formatter.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/terminal_interface_unix.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/userinterfaces/terminal_interface.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/bot.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/tools/chars.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/diff.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/family.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/data/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/login.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/textlib.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/data/api.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_namespace.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/throttle.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_basesite.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_decorators.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/echo.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_extensions.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_generators.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_interwikimap.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_siteinfo.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_tokenwallet.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_apisite.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_datasite.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/_obsoletesites.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/site/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/_collections.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/_decorators.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/_revision.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/page/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/__init__.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/date.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/xmlreader.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/proofreadpage.py
  2021-06-12 17:33:14 /srv/paws/pwb/pywikibot/pagegenerators.py
  2021-05-27 22:43:06 /srv/paws/pwb/pywikibot/families/commons_family.py
=========================================================
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0]
Enter a reason for the deletion: test
Working on 'User:Rubin16/test1'


>>> User:Rubin16/test1 <<<
Can't delete [[commons:User:Rubin16/test1]]; do you want to mark it for
deletion instead? ([y]es, [N]o, [a]ll): n
Dropped throttle(s).

Event Timeline

How it finds whether you can delete: https://github.com/wikimedia/pywikibot/blob/595b2497374e40a990303afc75672144ab18ae5f/pywikibot/page/__init__.py#L1746:

self.site.has_right('delete')

which expands to https://github.com/wikimedia/pywikibot/blob/595b2497374e40a990303afc75672144ab18ae5f/pywikibot/site/_apisite.py#L597:

def has_right(self, right):
    """Return true if and only if the user has a specific right.
    Possible values of 'right' may vary depending on wiki settings.
    https://www.mediawiki.org/wiki/API:Userinfo
    :param right: a specific right to be validated
    :type right: str
    """
    return right.lower() in self.userinfo['rights']

which works fine for me:

$ python pwb.py shell
family and mylang are not set.
Defaulting to family='wikipedia' and mylang='test'.
Welcome to the Pywikibot interactive shell!
>>> site = pywikibot.Site('zh', 'wikivoyage', user='Zhuyifei1999')
>>> site.login()
>>> site.userinfo['rights']
['editinterface', 'editsitecss', 'editsitejson', 'editsitejs', 'editusercss', 'edituserjson', 'edituserjs', 'suppressredirect', 'noratelimit', 'deleterevision', 'deletelogentry', 'editcontentmodel', 'block', 'createaccount', 'delete', 'deletedhistory', 'deletedtext', 'undelete', 'move', 'move-subpages', 'move-rootuserpages', 'move-categorypages', 'patrol', 'autopatrol', 'protect', 'editprotected', 'rollback', 'upload', 'reupload', 'reupload-shared', 'autoconfirmed', 'editsemiprotected', 'ipblock-exempt', 'blockemail', 'markbotedits', 'apihighlimits', 'browsearchive', 'movefile', 'tboverride', 'titleblacklistlog', 'transcode-reset', 'nuke', 'skipcaptcha', 'override-antispoof', 'abusefilter-log-detail', 'abusefilter-view-private', 'abusefilter-log-private', 'massmessage', 'read', 'edit', 'createpage', 'createtalk', 'writeapi', 'viewmywatchlist', 'editmywatchlist', 'viewmyprivateinfo', 'editmyoptions', 'abusefilter-view', 'abusefilter-log', 'reupload-own', 'minoredit', 'editmyusercss', 'editmyuserjson', 'editmyuserjs', 'purge', 'sendemail', 'applychangetags', 'changetags', 'spamblacklistlog']
>>> 'delete' in site.userinfo['rights']
True
>>> site.has_right('delete')
True
>>> site = pywikibot.Site('commons', 'commons', user='YiFeiBot')
>>> site.login()
>>> site.has_right('bot')
True

Can you print site.userinfo['rights'] and see what's going on there?

I am even more confused now.
It shows correctly that I am a sysop (having ipblock-exempt, for example) but it doesn't show delete here.
But here it says admins have "delete" right:
https://commons.wikimedia.org/wiki/Special:ListGroupRights

Welcome to the Pywikibot interactive shell!
>>> site = pywikibot.Site('commons', 'commons', user='Rubin16')
>>> site.login()
>>> site.userinfo['rights']
['changetags', 'suppressredirect', 'noratelimit', 'editcontentmodel', 'move', 'move-subpages', 'move-rootuserpages', 'move-categorypages', 'patrol', 'autopatrol', 'rollback', 'upload', 'reupload', 'reupload-shared', 'autoconfirmed', 'editsemiprotected', 'ipblock-exempt', 'markbotedits', 'apihighlimits', 'movefile', 'transcode-reset', 'skipcaptcha', 'abusefilter-log-detail', 'massmessage', 'flow-edit-post', 'read', 'edit', 'createpage', 'createtalk', 'writeapi', 'viewmywatchlist', 'editmywatchlist', 'translate', 'abusefilter-view', 'abusefilter-log', 'flow-hide', 'item-term', 'property-term', 'item-merge', 'item-redirect', 'property-create', 'mediainfo-term', 'upload_by_url', 'reupload-own', 'minoredit', 'purge', 'applychangetags', 'imagelabel-review']
>>> 'delete' in site.userinfo['rights']
False
>>>

Does the BotPassword / OAuth grant that you are using have the delete pages, revisions, and log entries grant?

I have made API request for myself directly, it is shown correctly

"batchcomplete": "",
    "query": {
        "userinfo": {
            "id": 329710,
            "name": "Rubin16",
            "rights": [
                "changetags",
                "templateeditor",
                "suppressredirect",
                "noratelimit",
                "deleterevision",
                "deletelogentry",
                "editcontentmodel",
                "block",
                "createaccount",
                "delete",
                "deletedhistory",
                "deletedtext",
                "undelete",
                "editinterface",
                "editsitejson",
                "edituserjson",
                "import",
                "move",
                "move-subpages",
                "move-rootuserpages",
                "move-categorypages",
                "patrol",
                "autopatrol",
                "protect",
                "editprotected",
                "rollback",
                "upload",
                "reupload",
                "reupload-shared",
                "unwatchedpages",
                "autoconfirmed",
                "editsemiprotected",
                "ipblock-exempt",
                "blockemail",
                "markbotedits",
                "apihighlimits",
                "browsearchive",
                "movefile",
                "mergehistory",
                "managechangetags",
                "deletechangetags",
                "pagelang",
                "oathauth-enable",
                "tboverride",
                "titleblacklistlog",
                "transcode-reset",
                "transcode-status",
                "globalblock-whitelist",
                "nuke",
                "skipcaptcha",
                "override-antispoof",
                "centralauth-createlocal",
                "abusefilter-log-detail",
                "abusefilter-view-private",
                "abusefilter-log-private",
                "abusefilter-modify",
                "abusefilter-modify-restricted",
                "massmessage",
                "upwizcampaigns",
                "mass-upload",
                "flow-lock",
                "flow-delete",
                "flow-edit-post",
                "read",
                "edit",
                "createpage",
                "createtalk",
                "writeapi",
                "viewmywatchlist",
                "editmywatchlist",
                "viewmyprivateinfo",
                "editmyprivateinfo",
                "editmyoptions",
                "translate",
                "centralauth-merge",
                "abusefilter-view",
                "abusefilter-log",
                "vipsscaler-test",
                "flow-hide",
                "item-term",
                "property-term",
                "item-merge",
                "item-redirect",
                "property-create",
                "mediainfo-term",
                "upload_by_url",
                "reupload-own",
                "minoredit",
                "editmyusercss",
                "editmyuserjson",
                "editmyuserjs",
                "purge",
                "sendemail",
                "applychangetags",
                "translate-messagereview",
                "translate-groupreview",
                "spamblacklistlog",
                "mwoauthmanagemygrants",
                "imagelabel-review",
                "collectionsaveasuserpage",
                "collectionsaveascommunitypage"
            ]
        }
    }
}

yes, that the issue of PAWS that it doesn't request such permission from OATH. I have checked from localhost, it is okay.

Thank you, guys.