jenkins-bot merged this change.

View Change

Approvals: Framawiki: Looks good to me, approved jenkins-bot: Verified
[IMPR] Simpifiy error message handling in login.py

Change-Id: I56ddd23ff11625b31edabb44dc92bbeafa5310b4
---
M pywikibot/login.py
1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/pywikibot/login.py b/pywikibot/login.py
index 73dfad5..20740bc 100644
--- a/pywikibot/login.py
+++ b/pywikibot/login.py
@@ -279,6 +279,13 @@
else:
warn('Invalid password format', _PasswordFileWarning)

+ _api_error = {
+ 'NotExists': 'does not exist',
+ 'Illegal': 'is invalid',
+ 'readapidenied': 'does not have read permissions',
+ 'Failed': 'does not have read permissions',
+ }
+
def login(self, retry=False, autocreate=False):
"""
Attempt to log into the server.
@@ -310,21 +317,15 @@
try:
cookiedata = self.getCookie()
except pywikibot.data.api.APIError as e:
- pywikibot.error('Login failed (%s).' % e.code)
- if e.code == 'NotExists':
- raise NoUsername("Username '%s' does not exist on %s"
- % (self.login_name, self.site))
- if e.code == 'Illegal':
- raise NoUsername("Username '%s' is invalid on %s"
- % (self.login_name, self.site))
- if e.code == 'readapidenied':
- raise NoUsername(
- 'Username "{0}" does not have read permissions on '
- '{1}'.format(self.login_name, self.site))
- if e.code == 'Failed':
- raise NoUsername(
- 'Username "{0}" does not have read permissions on '
- '{1}\n.{2}'.format(self.login_name, self.site, e.info))
+ error_code = e.code
+ pywikibot.error('Login failed ({}).'.format(error_code))
+ if error_code in self._api_error:
+ error_msg = 'Username "{}" {} on {}'.format(
+ self.login_name, self._api_error[error_code], self.site)
+ if error_code == 'Failed':
+ error_msg += '\n.{}'.format(e.info)
+ raise NoUsername(error_msg)
+
# TODO: investigate other unhandled API codes (bug T75539)
if retry:
self.password = None

To view, visit change 473858. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I56ddd23ff11625b31edabb44dc92bbeafa5310b4
Gerrit-Change-Number: 473858
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Framawiki <framawiki@tools.wmflabs.org>
Gerrit-Reviewer: John Vandenberg <jayvdb@gmail.com>
Gerrit-Reviewer: jenkins-bot (75)