[amazon] Retry getting an order page. Closes #1876

This commit is contained in:
Oleg Plakhotniuk 2015-04-27 12:55:43 -05:00 committed by Romain Bignon
commit f41d43e3f5

View file

@ -85,16 +85,15 @@ class Amazon(LoginBrowser):
Amazon updates its website in stages: they reroute a random part of Amazon updates its website in stages: they reroute a random part of
their users to new pages, and the rest to old ones. their users to new pages, and the rest to old ones.
""" """
if (not self.order_new.is_here() and not self.order_old.is_here()) \ for i in xrange(self.MAX_RETRIES):
or self.page.order_number() != order_id: if (self.order_new.is_here() or self.order_old.is_here()) \
and self.page.order_number() == order_id:
return self.page
try: try:
self.order_new.go(order_id=order_id) self.order_new.go(order_id=order_id)
except HTTPNotFound: except HTTPNotFound:
self.order_old.go(order_id=order_id) self.order_old.go(order_id=order_id)
if (not self.order_new.is_here() and not self.order_old.is_here()) \
or self.page.order_number() != order_id:
raise OrderNotFound() raise OrderNotFound()
return self.page
def do_login(self): def do_login(self):
self.session.cookies.clear() self.session.cookies.clear()