def testPrice(self): branch = self.create_branch() p1 = self.create_product(branch=branch, stock=1, price=Decimal('10.15')) results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.failUnless(list(results)) self.assertEquals(results[0].price, Decimal('10.15')) # Set a sale price sellable = p1.sellable sellable.on_sale_price = Decimal('5.55') # And a interval that includes today yesterday = localtoday().date() - datetime.timedelta(days=1) tomorrow = localtoday().date() + datetime.timedelta(days=1) sellable.on_sale_start_date = yesterday sellable.on_sale_end_date = tomorrow results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.assertEquals(results[0].price, Decimal('5.55')) # Testing with a sale price set, but in the past date1 = localtoday().date() - datetime.timedelta(days=10) date2 = localtoday().date() - datetime.timedelta(days=5) sellable.on_sale_start_date = date1 sellable.on_sale_end_date = date2 results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.assertEquals(results[0].price, Decimal('10.15'))
def test_price(self): branch = self.create_branch() p1 = self.create_product(branch=branch, stock=1, price=Decimal('10.15')) results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.failUnless(list(results)) self.assertEquals(results[0].price, Decimal('10.15')) # Set a sale price sellable = p1.sellable sellable.on_sale_price = Decimal('5.55') # And a interval that includes today yesterday = localtoday() - datetime.timedelta(days=1) tomorrow = localtoday() + datetime.timedelta(days=1) sellable.on_sale_start_date = yesterday sellable.on_sale_end_date = tomorrow results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.assertEquals(results[0].price, Decimal('5.55')) # Testing with a sale price set, but in the past date1 = localtoday() - datetime.timedelta(days=10) date2 = localtoday() - datetime.timedelta(days=5) sellable.on_sale_start_date = date1 sellable.on_sale_end_date = date2 results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.assertEquals(results[0].price, Decimal('10.15'))
def testSelectByBranch(self): branch = self.create_branch() p1 = self.create_product(branch=branch, stock=1) p2 = self.create_product() results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.failUnless(list(results)) results = SellableFullStockView.find_by_branch(self.store, branch).find( ProductFullStockView.product_id == p2.id,) self.failUnless(list(results)) # FIXME: Storm does not support count() with group_by # self.assertEquals(results.count(), 1) self.assertEquals(len(list(results)), 1)
def test_select_by_branch(self): branch = self.create_branch() p1 = self.create_product(branch=branch, stock=1) p2 = self.create_product() results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.failUnless(list(results)) results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p2.id,) self.failUnless(list(results)) # FIXME: Storm does not support count() with group_by # self.assertEquals(results.count(), 1) self.assertEquals(len(list(results)), 1)
def testSellable(self): branch = self.create_branch() p1 = self.create_product(branch=branch, stock=1) results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.failUnless(list(results)) self.assertEquals(results[0].sellable, p1.sellable)
def test_sellable(self): branch = self.create_branch() p1 = self.create_product(branch=branch, stock=1) results = SellableFullStockView.find_by_branch(self.store, branch).find( SellableFullStockView.product_id == p1.id) self.failUnless(list(results)) self.assertEquals(results[0].sellable, p1.sellable)
def executer_query(self, store): queries = [] if self._delivery_sellable: queries.append(And( SellableFullStockView.status == Sellable.STATUS_AVAILABLE, SellableFullStockView.id != self._delivery_sellable.id)) # If we select a quantity which is not an integer, filter out # sellables without a unit set if self.quantity is not None and (self.quantity % 1) != 0: queries.append(Ne(Sellable.unit_id, None)) branch = api.get_current_branch(store) results = SellableFullStockView.find_by_branch(store, branch) if queries: return results.find(And(*queries)) return results
def executer_query(self, store): queries = [] if self._delivery_sellable: queries.append( And(SellableFullStockView.status == Sellable.STATUS_AVAILABLE, SellableFullStockView.id != self._delivery_sellable.id)) # If we select a quantity which is not an integer, filter out # sellables without a unit set if self.quantity is not None and (self.quantity % 1) != 0: queries.append(Ne(Sellable.unit_id, None)) branch = api.get_current_branch(store) results = SellableFullStockView.find_by_branch(store, branch) if queries: return results.find(And(*queries)) return results