def test_for_empty_price_excl_tax(self): basket = factories.BasketFactory() product_class = factories.ProductClassFactory(track_stock=False) product = factories.ProductFactory(product_class=product_class, stockrecords=[]) factories.StockRecordFactory.build(price_excl_tax=None, product=product) data = {'quantity': 1} form = forms.AddToBasketForm(basket=basket, product=product, data=data) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['__all__'][0], 'unavailable')
def setUp(self): # Override all loggers, suppressing logging calls of severity CRITICAL and below logging.disable(logging.CRITICAL) user = User.objects.create_user(username='******', email='*****@*****.**', password='******') self.product_class = factories.ProductClassFactory( name='Seat', requires_shipping=False, track_stock=False) product_attribute = factories.ProductAttributeFactory( name='course_key', code='course_key', product_class=self.product_class, type='text') fried_chicken = factories.ProductFactory( structure='parent', title=u'𝑭𝒓𝒊𝒆𝒅 𝑪𝒉𝒊𝒄𝒌𝒆𝒏', product_class=self.product_class, stockrecords=None, ) factories.ProductAttributeValueFactory( attribute=product_attribute, product=fried_chicken, value_text='pollos/chickenX/2015') pollos_hermanos = factories.ProductFactory( structure='child', parent=fried_chicken, title=u'𝕃𝕠𝕤 ℙ𝕠𝕝𝕝𝕠𝕤 ℍ𝕖𝕣𝕞𝕒𝕟𝕠𝕤', stockrecords__partner_sku=u'ṠÖṀЁṪḦЇṄĠ⸚ḊЁḶЇĊЇÖÜṠ', stockrecords__price_excl_tax=D('9.99'), ) self.attribute_value = factories.ProductAttributeValueFactory( attribute=product_attribute, product=pollos_hermanos, value_text='pollos/hermanosX/2015') self.basket = factories.create_basket(empty=True) self.basket.add_product(pollos_hermanos, 1) self.order = factories.create_order(number=self.ORDER_NUMBER, basket=self.basket, user=user) # the processor will pass through a string representation of this self.order_total = unicode(self.order.total_excl_tax) # Remove logger override self.addCleanup(logging.disable, logging.NOTSET)
def test_attributes_refresh(self): product_class = factories.ProductClassFactory() product_class.attributes.create(name='a1', code='a1', required=True) product = factories.ProductFactory(product_class=product_class) product.attr.a1 = "v1" product.attr.save() product_attr = ProductAttribute.objects.get(code="a1", product=product) product_attr.save_value(product, "v2") assert product.attr.a1 == "v1" product.attr.refresh() assert product.attr.a1 == "v2"
def test_are_stock_allocations_available_track_stock_off(self): product_class = factories.ProductClassFactory(requires_shipping=False, track_stock=False) product = factories.ProductFactory(product_class=product_class) basket = factories.create_basket(empty=True) add_product(basket, D('10.00'), 5, product=product) order = factories.create_order(basket=basket) line = order.lines.get() self.assertEqual( self.handler.are_stock_allocations_available([line], [105]), True, )
def test_cancel_stock_allocations_without_line_arguments(self): product_class = factories.ProductClassFactory(requires_shipping=False, track_stock=True) product = factories.ProductFactory(product_class=product_class) basket = factories.create_basket(empty=True) add_product(basket, D('10.00'), 5, product=product) order = factories.create_order(basket=basket) stockrecord = product.stockrecords.get() num_allocated = stockrecord.num_allocated self.handler.cancel_stock_allocations(order) stockrecord.refresh_from_db() self.assertEqual(stockrecord.num_allocated, num_allocated - 5, "Allocated stock should have decreased, but didn't.")
def test_attributes_initialised_before_write(self): # Regression test for https://github.com/django-oscar/django-oscar/issues/3258 product_class = factories.ProductClassFactory() product_class.attributes.create(name='a1', code='a1', required=True) product_class.attributes.create(name='a2', code='a2', required=False) product_class.attributes.create(name='a3', code='a3', required=True) product = factories.ProductFactory(product_class=product_class) product.attr.a1 = "v1" product.attr.a3 = "v3" product.attr.save() product = Product.objects.get(pk=product.pk) product.attr.a1 = "v2" product.attr.a3 = "v6" product.attr.save() product = Product.objects.get(pk=product.pk) assert product.attr.a1 == "v2" assert product.attr.a3 == "v6"
def test_cancel_stock_allocations_track_stock_off(self): product_class = factories.ProductClassFactory(requires_shipping=False, track_stock=False) product = factories.ProductFactory(product_class=product_class) basket = factories.create_basket(empty=True) add_product(basket, D('10.00'), 5, product=product) order = factories.create_order(basket=basket) stockrecord = product.stockrecords.get() num_allocated = stockrecord.num_allocated lines = order.lines.all() self.handler.cancel_stock_allocations( order, lines, [line.quantity for line in lines]) stockrecord.refresh_from_db() self.assertEqual( stockrecord.num_allocated, num_allocated, "Allocated stock shouldn't have changed, but it did.")
def setUp(self): super(BasketCreationMixin, self).setUp() product_class = factories.ProductClassFactory(name=u'𝑨𝒖𝒕𝒐𝒎𝒐𝒃𝒊𝒍𝒆', requires_shipping=False, track_stock=False) self.base_product = factories.ProductFactory( structure='parent', title=u'𝑳𝒂𝒎𝒃𝒐𝒓𝒈𝒉𝒊𝒏𝒊 𝑮𝒂𝒍𝒍𝒂𝒓𝒅𝒐', product_class=product_class, stockrecords=None, ) self.free_product = factories.ProductFactory( structure='child', parent=self.base_product, title=u'𝑪𝒂𝒓𝒅𝒃𝒐𝒂𝒓𝒅 𝑪𝒖𝒕𝒐𝒖𝒕', stockrecords__partner_sku=self.FREE_SKU, stockrecords__price_excl_tax=Decimal('0.00'), )
def setUp(self): super(BasketCreationMixin, self).setUp() self.user = self.create_user() product_class = factories.ProductClassFactory(name=u'Áutomobilé', requires_shipping=False, track_stock=False) self.base_product = factories.ProductFactory( structure='parent', title=u'Lamborghinï Gallardœ', product_class=product_class, stockrecords=None, ) self.free_product = factories.ProductFactory( structure='child', parent=self.base_product, title='Cardboard Cutout', stockrecords__partner_sku=self.FREE_SKU, stockrecords__price_excl_tax=Decimal('0.00'), )
def setUp(self): user = UserFactory() self.product_class = factories.ProductClassFactory( name='Seat', requires_shipping=False, track_stock=False ) self.course = factories.ProductFactory( structure='parent', upc='001', title='EdX DemoX Course', product_class=self.product_class ) self.seat = factories.ProductFactory( structure='child', upc='002', title='Seat in EdX DemoX Course with Honor Certificate', product_class=None, parent=self.course ) for stock_record in self.seat.stockrecords.all(): stock_record.price_currency = 'USD' stock_record.save() basket = BasketFactory() basket.add_product(self.seat, 1) self.order = factories.create_order(number=1, basket=basket, user=user)
def setUp(self): self.product_class = factories.ProductClassFactory()
def setUp(self): self.product_class = factories.ProductClassFactory() self.product = factories.create_product( product_class=self.product_class) self.option = factories.OptionFactory()
def setUp(self): self.product_class = factories.ProductClassFactory( requires_shipping=False, track_stock=False)
def test_product_with_empty_price(self): product_class = factories.ProductClassFactory(track_stock=False) product = factories.ProductFactory(product_class=product_class, stockrecords=[]) factories.StockRecordFactory(price_excl_tax=None, product=product) info = self.strategy.fetch_for_product(product) self.assertFalse(info.availability.is_available_to_buy)
def setUp(self): self.product_class = oscar_factories.ProductClassFactory() self.user = oscar_factories.UserFactory()
def setUp(self): product_class = factories.ProductClassFactory( requires_shipping=False, track_stock=False) self.product = factories.ProductFactory(product_class=product_class) self.stockrecord = factories.create_stockrecord( self.product, price_excl_tax=D('10.00'), num_in_stock=10)