Amazon module: skip 'Not yet shipped' orders. Fixes #1699

This commit is contained in:
Oleg Plakhotniuk 2014-12-29 13:35:26 -06:00 committed by Florent
commit f2ea735c78

View file

@ -75,19 +75,22 @@ class HistoryPage(AmazonPage):
) if x.startswith('year-')] ) if x.startswith('year-')]
class OrderNewPage(AmazonPage): class OrderPage(AmazonPage):
is_here = u'//*[contains(text(),"Ordered on")]' def shouldSkip(self):
def order(self):
# Reports only fully shipped and delivered orders, because they have # Reports only fully shipped and delivered orders, because they have
# finalized payment amounts. # finalized payment amounts.
# Payment for not yet shipped orders may change, and is not always # Payment for not yet shipped orders may change, and is not always
# available. # available.
for s in [u'Not Yet Shipped', u'Preparing for Shipment', return bool([x for s in [u'Not Yet Shipped', u'Not yet shipped',
u'Shipping now', u'In transit']: u'Preparing for Shipment', u'Shipping now', u'In transit']
if self.doc.xpath(u'//*[contains(text(),"%s")]' % s): for x in self.doc.xpath(u'//*[contains(text(),"%s")]' % s)])
return None
class OrderNewPage(OrderPage):
is_here = u'//*[contains(text(),"Ordered on")]'
def order(self):
if not self.shouldSkip():
order = Order(id=self.order_number()) order = Order(id=self.order_number())
order.date = self.order_date() order.date = self.order_date()
order.tax = self.tax() order.tax = self.tax()
@ -207,19 +210,11 @@ class OrderNewPage(AmazonPage):
yield itm yield itm
class OrderOldPage(AmazonPage): class OrderOldPage(OrderPage):
is_here = u'//*[contains(text(),"Amazon.com order number")]' is_here = u'//*[contains(text(),"Amazon.com order number")]'
def order(self): def order(self):
# Reports only fully shipped and delivered orders, because they have if not self.shouldSkip():
# finalized payment amounts.
# Payment for not yet shipped orders may change, and are not always
# available.
for s in [u'Not Yet Shipped', u'Preparing for Shipment',
u'Shipping now']:
if self.doc.xpath(u'//b[contains(text(),"%s")]' % s):
return None
order = Order(id=self.order_number()) order = Order(id=self.order_number())
order.date = self.order_date() order.date = self.order_date()
order.tax = self.tax() order.tax = self.tax()