jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/473858 )

Change subject: [IMPR] Simpifiy error message handling in login.py
......................................................................

[IMPR] Simpifiy error message handling in login.py

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

Approvals:
  Framawiki: Looks good to me, approved
  jenkins-bot: Verified



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 https://gerrit.wikimedia.org/r/473858
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/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 <[email protected]>
Gerrit-Reviewer: Framawiki <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: jenkins-bot (75)
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to