jenkins-bot submitted this change.
[FIX] Skip process that requires login to logout
Getting self.tokens['crsf'] triggers a login when not already logged in.
Checks LoginStatus and only continue the steps if still logged in.
Bug: T326614
Change-Id: I50e49e9ea8dbf2ef29c7606b4cd318ac02f8c33c
---
M pywikibot/site/_apisite.py
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/pywikibot/site/_apisite.py b/pywikibot/site/_apisite.py
index 340d82e..4924b60 100644
--- a/pywikibot/site/_apisite.py
+++ b/pywikibot/site/_apisite.py
@@ -471,10 +471,12 @@
if self.is_oauth_token_available():
pywikibot.warning('Using OAuth suppresses logout function')
- req_params = {'action': 'logout', 'token': self.tokens['csrf']}
- uirequest = self.simple_request(**req_params)
- uirequest.submit()
- self._loginstatus = login.LoginStatus.NOT_LOGGED_IN
+ # check if already logged out to avoid requiring logging in
+ if not self._loginstatus == login.LoginStatus.NOT_LOGGED_IN:
+ req_params = {'action': 'logout', 'token': self.tokens['csrf']}
+ uirequest = self.simple_request(**req_params)
+ uirequest.submit()
+ self._loginstatus = login.LoginStatus.NOT_LOGGED_IN
# Reset tokens and user properties
del self.userinfo
To view, visit change 1018821. To unsubscribe, or for help writing mail filters, visit settings.