jenkins-bot merged this change.

View Change

Approvals: Dvorapa: Looks good to me, approved jenkins-bot: Verified
[bugfix] Fix UnboundLocalError in ProofreadPage._ocr_callback

- use for statement instead of while
- return if loop is processed completely with 5 retries
and do not continue the method because response is not fetched
- move sleep statement out of exception handling; probably other
exceptions can also have retries in future

Bug: T243644
Change-Id: Id3601ea4678a3a0ab158a942644d792e46c7cea5
---
M pywikibot/proofreadpage.py
1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/pywikibot/proofreadpage.py b/pywikibot/proofreadpage.py
index 5ca3dfd..662cba0 100644
--- a/pywikibot/proofreadpage.py
+++ b/pywikibot/proofreadpage.py
@@ -599,17 +599,14 @@
(self._OCR_METHODS, ocr_tool))

# wrong link fail with Exceptions
- retry = 0
- while retry < 5:
+ for retry in range(5, 30, 5):
pywikibot.debug('{0}: get URI {1!r}'.format(ocr_tool, cmd_uri),
_logger)
try:
response = http.fetch(cmd_uri)
except requests.exceptions.ReadTimeout as e:
- retry += 1
+ timeout = e
pywikibot.warning('ReadTimeout %s: %s' % (cmd_uri, e))
- pywikibot.warning('retrying in %s seconds ...' % (retry * 5))
- time.sleep(retry * 5)
except Exception as e:
pywikibot.error('"%s": %s' % (cmd_uri, e))
return (True, e)
@@ -618,6 +615,11 @@
_logger)
break

+ pywikibot.warning('retrying in {} seconds ...'.format(retry))
+ time.sleep(retry)
+ else:
+ return True, timeout
+
if 400 <= response.status < 600:
return (True, 'Http response status {0}'.format(response.status))


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

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Id3601ea4678a3a0ab158a942644d792e46c7cea5
Gerrit-Change-Number: 567213
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Dvorapa <dvorapa@seznam.cz>
Gerrit-Reviewer: jenkins-bot (75)