def test_includes_hourly_report_with_orders(self): create_order(total_incl_tax=D('34.05'), total_excl_tax=D('34.05')) create_order(total_incl_tax=D('21.90'), total_excl_tax=D('21.90')) report = IndexView().get_hourly_report() self.assertEquals(len(report['order_total_hourly']), 12) self.assertEquals(len(report['y_range']), 11) self.assertEquals(report['max_revenue'], D('60'))
def setUp(self): Line.pipeline = {'A': ('B', 'C'), 'B': ('C',)} self.order = create_order() self.line = self.order.lines.all()[0] self.line.status = 'A' self.line.save()
def test_can_be_created_with_an_offer(self): offer = create_offer() order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00'), offer_id=offer.id) self.assertEqual(offer.id, discount.offer.id) self.assertEqual(offer.name, discount.offer_name)
def test_can_see_order_status(self): order = create_order() path = reverse('customer:anon-order', kwargs={'order_number': order.number, 'hash': order.verification_hash()}) response = self.app.get(path) self.assertEqual(httplib.OK, response.status_code)
def test_gets_404_when_using_incorrect_hash(self): order = create_order() path = reverse('customer:anon-order', kwargs={'order_number': order.number, 'hash': 'bad'}) response = self.app.get(path, status="*") self.assertEqual(httplib.NOT_FOUND, response.status_code)
def test_can_be_created_with_a_voucher(self): voucher = create_voucher() order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00'), voucher_id=voucher.id) self.assertEqual(voucher.id, discount.voucher.id) self.assertEqual(voucher.code, discount.voucher_code)
def test_sending_a_order_related_messages(self): email = '*****@*****.**' user = User.objects.create_user('testuser', email, 'somesimplepassword') order_number = '12345' order = create_order(number=order_number, user=user) et = CommunicationEventType.objects.create(code="ORDER_PLACED", name="Order Placed", category="Order related") messages = et.get_messages({ 'order': order, 'lines': order.lines.all() }) self.assertIn(order_number, messages['body']) self.assertIn(order_number, messages['html']) dispatcher = Dispatcher() dispatcher.dispatch_order_messages(order, messages, et) self.assertEquals(len(mail.outbox), 1) message = mail.outbox[0] self.assertIn(order_number, message.body)
def test_can_be_created_with_an_offer_and_specified_offer_name(self): offer = create_offer(name="My offer") order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00'), offer_id=offer.id, offer_name="Your offer") self.assertEqual(offer.id, discount.offer.id) self.assertEqual("Your offer", discount.offer_name)
def test_can_be_created_without_offer_or_voucher(self): order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00')) self.assertTrue(discount.voucher is None) self.assertTrue(discount.offer is None) self.assertEquals(discount.description(), u'')
def test_can_be_created_with_a_voucher_and_specidied_voucher_code(self): voucher = create_voucher() order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00'), voucher_id=voucher.id, voucher_code="anothercode") self.assertEqual(voucher.id, discount.voucher.id) self.assertEqual('anothercode', discount.voucher_code)
def setUp(self): basket = Basket() basket.add_product(create_product(price=D('10.00')), 4) self.order = create_order(number='100002', basket=basket) self.line = self.order.lines.all()[0] self.order_placed, _ = ShippingEventType.objects.get_or_create( code='order_placed', name='Order placed') self.dispatched, _ = ShippingEventType.objects.get_or_create( code='dispatched', name='Dispatched')
def setUp(self): basket = Basket() basket.add_product(create_product(price=D('10.00')), 4) self.order = create_order(number='100002', basket=basket) self.line = self.order.lines.all()[0] self.order_placed,_ = ShippingEventType.objects.get_or_create(code='order_placed', name='Order placed') self.dispatched,_ = ShippingEventType.objects.get_or_create(code='dispatched', name='Dispatched')
def setUp(self): basket = Basket() basket.add_product(create_product(price=D('10.00')), 4) self.order = create_order(number='100002', basket=basket) self.line = self.order.lines.all()[0] self.shipped, _ = ShippingEventType.objects.get_or_create( name='Shipped', is_required=True, sequence_number=0) self.returned, _ = ShippingEventType.objects.get_or_create( name='Returned', is_required=False, sequence_number=1)
def test_contains_offer_details_after_offer_is_deleted(self): offer = create_offer(name="Get 200% off") order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00'), offer_id=offer.id) offer.delete() self.assertTrue(discount.voucher is None) self.assertTrue(discount.offer is None) self.assertEquals(discount.description(), u'Get 200% off')
def test_contains_voucher_details_after_voucher_is_deleted(self): voucher = create_voucher() order = create_order(number='100002') discount = OrderDiscount.objects.create(order=order, amount=D('10.00'), voucher_id=voucher.id) voucher.delete() self.assertTrue(discount.voucher is None) self.assertTrue(discount.offer is None) self.assertEquals(discount.description(), voucher.code)
def test_searching_for_valid_order_number_redirects_to_order_page(self): # Importing here as the import makes DB queries from oscar.apps.dashboard.orders.forms import OrderSearchForm order = create_order() fields = OrderSearchForm.base_fields.keys() pairs = dict(zip(fields, ['']*len(fields))) pairs['order_number'] = order.number pairs['response_format'] = 'html' url = '%s?%s' % (reverse('dashboard:order-list'), '&'.join(['%s=%s' % (k,v) for k,v in pairs.items()])) response = self.client.get(url) self.assertEqual(httplib.FOUND, response.status_code)
def setUp(self): basket = Basket() basket.add_product(create_product(price=D('10.00')), 4) self.order = create_order(number='100002', basket=basket) self.line = self.order.lines.all()[0] self.shipped,_ = ShippingEventType.objects.get_or_create(name='Shipped', is_required=True, sequence_number=0) self.returned,_ = ShippingEventType.objects.get_or_create(name='Returned', is_required=False, sequence_number=1)
def test_cannot_reorder_line_when_basket_maximum_exceeded(self): order = create_order(user=self.user) line = order.lines.all()[0] Basket.objects.all().delete() #add a product product = create_product(price=D('12.00')) self.client.post(reverse('basket:add'), {'product_id': product.id, 'quantity': 1}) basket = Basket.objects.all()[0] self.assertEquals(len(basket.all_lines()), 1) self.client.post(reverse('customer:order-line', args=(order.number, line.pk)), {'action': 'reorder'}) self.assertEquals(len(basket.all_lines()), 1) self.assertNotEqual(line.product.pk, product.pk)
def setUp(self): Order.pipeline = {'A': ('B', 'C')} self.order = create_order(status='A') self.url = reverse('dashboard:order-detail', kwargs={'number': self.order.number}) super(OrderDetailTests, self).setUp()
def test_max_applications_is_correct_when_more_applications(self): order = create_order(user=self.user) G(OrderDiscount, order=order, offer_id=self.offer.id, frequency=5) self.assertEqual(0, self.offer.get_max_applications(self.user))
def setUp(self): self.order = create_order() self.handler = EventHandler() self.shipped = models.ShippingEventType.objects.create(name='Shipped') self.returned = models.ShippingEventType.objects.create(name='Returned')
def setUp(self): self.order = create_order() self.line = self.order.lines.all()[0] self.url = reverse('dashboard:order-line-detail', kwargs={'number': self.order.number, 'line_id': self.line.id}) super(LineDetailTests, self).setUp()
def test_available_statuses_for_pending(self): self.order = create_order(status='PENDING') self.assertEqual(('SHIPPED', 'CANCELLED'), self.order.available_statuses())
def setUp(self): self.user = User.objects.create_user('_', self.email, self.password) self.order = create_order(user=self.user)
def test_no_statuses_available_for_no_status(self): self.order = create_order() self.assertEqual((), self.order.available_statuses())
def test_cascading_status_change(self): self.order = create_order(status='PENDING') self.order.set_status('SHIPPED') for line in self.order.lines.all(): self.assertEqual('SHIPPED', line.status)
def test_set_status_does_nothing_for_same_status(self): self.order = create_order(status='PENDING') self.order.set_status('PENDING') self.assertEqual('PENDING', self.order.status)
def setUp(self): self.order = create_order() self.handler = EventHandler() self.shipped = models.ShippingEventType.objects.create(name='Shipped') self.returned = models.ShippingEventType.objects.create( name='Returned')
def setUp(self): self.order = create_order()
def setUp(self): Line.pipeline = {'A': ('B', 'C'), 'B': ('C', )} self.order = create_order() self.line = self.order.lines.all()[0] self.line.status = 'A' self.line.save()
def test_set_status_works(self): self.order = create_order(status='PENDING') self.order.set_status('SHIPPED') self.assertEqual('SHIPPED', self.order.status)
def test_available_statuses_for_shipped_order(self): self.order = create_order(status='SHIPPED') self.assertEqual(('COMPLETE', ), self.order.available_statuses())
def test_available_statuses_for_shipped_order(self): self.order = create_order(status='SHIPPED') self.assertEqual(('COMPLETE',), self.order.available_statuses())
def test_set_status_respects_pipeline(self): self.order = create_order(status='SHIPPED') with self.assertRaises(InvalidOrderStatus): self.order.set_status('PENDING')