def prepare_basket(self, price): """ Helper function that creates a basket and adds a product with set price to it. """ basket = factories.BasketFactory(owner=self.user, site=self.site) basket.add_product( factories.ProductFactory(stockrecords__price_excl_tax=price), 1) self.assertEqual(basket.lines.count(), 1) self.assertEqual(basket.total_incl_tax, Decimal(price))
def prepare_basket(self, price, bundle=False): """ Helper function that creates a basket and adds a product with set price to it. """ basket = factories.BasketFactory(owner=self.user, site=self.site) self.course_run.create_or_update_seat('verified', True, Decimal(price), self.partner) basket.add_product(self.course_run.seat_products[0]) self.assertEqual(basket.lines.count(), 1) self.assertEqual(basket.total_incl_tax, Decimal(price)) if bundle: BasketAttribute.objects.update_or_create( basket=basket, attribute_type=BasketAttributeType.objects.get(name='bundle_identifier'), value_text=self.bundle_attribute_value )
def setUp(self): super(VoucherAddViewTests, self).setUp() self.user = self.create_user() self.client.login(username=self.user.username, password=self.password) self.basket = factories.BasketFactory(owner=self.user, site=self.site) # Fallback storage is needed in tests with messages self.request.user = self.user self.request.basket = self.basket self.view = VoucherAddView() self.view.request = self.request self.form = BasketVoucherForm() self.form.cleaned_data = {'code': COUPON_CODE}
def setUp(self): super(VoucherAddMessagesViewTests, self).setUp() self.user = self.create_user() self.client.login(username=self.user.username, password=self.password) self.basket = factories.BasketFactory(owner=self.user, site=self.site) self.request = RequestFactory().request() # Fallback storage is needed in tests with messages setattr(self.request, 'session', 'session') messages = FallbackStorage(self.request) setattr(self.request, '_messages', messages) self.request.user = self.user self.voucher_add_view = VoucherAddMessagesView() self.form = BasketVoucherForm() self.form.cleaned_data = {'code': COUPON_CODE}
def test_already_purchased_product(self): """ Verify student can not place multiple orders for single course seat """ course = CourseFactory() product = course.create_or_update_seat("Verified", True, 0, self.partner) stock_record = StockRecordFactory(product=product, partner=self.partner) catalog = Catalog.objects.create(partner=self.partner) catalog.stock_records.add(stock_record) sku = stock_record.partner_sku basket = factories.BasketFactory(owner=self.user, site=self.site) basket.add_product(product, 1) create_order(user=self.user, basket=basket) url = '{path}?sku={sku}'.format(path=self.path, sku=sku) expected_content = 'You have already purchased {course} seat.'.format(course=product.course.name) response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['error'], expected_content)
def create_basket_and_add_product(self, product): basket = factories.BasketFactory(owner=self.user, site=self.site) basket.add_product(product, 1) return basket