コード例 #1
0
ファイル: dashboard_tests.py プロジェクト: vilos/django-oscar
    def test_dashboard_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"]), 24)
        self.assertEquals(len(report["y_range"]), 11)
        self.assertEquals(report["max_revenue"], D("60"))
コード例 #2
0
ファイル: tests.py プロジェクト: MechanisM/django-oscar
    def test_dashboard_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']), 24)
        self.assertEquals(len(report['y_range']), 11)
        self.assertEquals(report['max_revenue'], D('60'))
コード例 #3
0
ファイル: tests.py プロジェクト: MechanisM/django-oscar
    def test_dashboard_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']), 24)
        self.assertEquals(len(report['y_range']), 11)
        self.assertEquals(report['max_revenue'], D('60'))
コード例 #4
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
 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)
コード例 #5
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
 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)
コード例 #6
0
 def test_creation_with_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)
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
 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)
コード例 #10
0
 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)
コード例 #11
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 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()
コード例 #12
0
 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()
コード例 #13
0
ファイル: order_tests.py プロジェクト: vilos/django-oscar
 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")
コード例 #14
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
 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)
コード例 #15
0
 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)
コード例 #16
0
    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'')
コード例 #17
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
 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)
コード例 #18
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
    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'')
コード例 #19
0
ファイル: tests.py プロジェクト: MechanisM/django-oscar
 def test_404_received_for_order_with_incorrect_hash(self):
     order = create_order()
     response = self.client.get(
         reverse('customer:anon-order',
                 kwargs={
                     'order_number': order.number,
                     'hash': 'bad'
                 }))
     self.assertEqual(httplib.NOT_FOUND, response.status_code)
コード例 #20
0
 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)
コード例 #21
0
 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)
コード例 #22
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 def test_searching_for_valid_order_number_redirects_to_order_page(self):
     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)
コード例 #23
0
 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')
コード例 #24
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 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')
コード例 #25
0
ファイル: order_tests.py プロジェクト: MechanisM/django-oscar
 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()
コード例 #26
0
 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)
コード例 #27
0
 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)
コード例 #28
0
ファイル: tests.py プロジェクト: MechanisM/django-oscar
 def test_200_received_for_order_with_correct_hash(self):
     order = create_order()
     response = self.client.get(
         reverse('customer:anon-order',
                 kwargs={
                     'order_number': order.number,
                     'hash': order.verification_hash()
                 }))
     self.assertEqual(httplib.OK, response.status_code)
コード例 #29
0
    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)
コード例 #30
0
ファイル: order_tests.py プロジェクト: vilos/django-oscar
    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
        )
コード例 #31
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
    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')
コード例 #32
0
    def test_can_reorder_line(self):
        order = create_order(user=self.user)
        line = order.lines.all()[0]
        Basket.objects.all().delete()

        self.client.post(reverse('customer:order-line',
                                            args=(order.number, line.pk)),
                                    {'action': 'reorder'})

        basket = Basket.objects.all()[0]
        self.assertEquals(len(basket.all_lines()), 1)
コード例 #33
0
ファイル: model_tests.py プロジェクト: LyNDe/django-oscar
    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)
コード例 #34
0
ファイル: order_tests.py プロジェクト: MechanisM/django-oscar
 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)
コード例 #35
0
    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')
コード例 #36
0
    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)
コード例 #37
0
ファイル: order_tests.py プロジェクト: Geekfish/django-oscar
    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)
コード例 #38
0
    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)
コード例 #39
0
    def test_cannot_reorder_out_of_stock_line(self):
        order = create_order(user=self.user)
        line = order.lines.all()[0]

        product = line.product
        product.stockrecord.num_in_stock = 0
        product.stockrecord.save()

        Basket.objects.all().delete()

        self.client.post(reverse('customer:order-line',
                                            args=(order.number, line.pk)),
                                    {'action': 'reorder'})

        basket = Basket.objects.all()[0]
        self.assertEquals(len(basket.all_lines()), 0)
コード例 #40
0
    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)
コード例 #41
0
    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)
コード例 #42
0
 def test_set_status_works(self):
     self.order = create_order(status='PENDING')
     self.order.set_status('SHIPPED')
     self.assertEqual('SHIPPED', self.order.status)
コード例 #43
0
ファイル: order_tests.py プロジェクト: Geekfish/django-oscar
 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()
コード例 #44
0
ファイル: order_tests.py プロジェクト: Geekfish/django-oscar
 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()
コード例 #45
0
 def test_creation_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)
コード例 #46
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 def test_404_received_for_order_with_incorrect_hash(self):
     order = create_order()
     response = self.client.get(reverse('customer:anon-order', kwargs={'order_number': order.number,
         'hash': 'bad'}))
     self.assertEqual(httplib.NOT_FOUND, response.status_code)
コード例 #47
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 def test_200_received_for_order_with_correct_hash(self):
     order = create_order()
     response = self.client.get(reverse('customer:anon-order', kwargs={'order_number': order.number,
         'hash': order.verification_hash()}))
     self.assertEqual(httplib.OK, response.status_code)
コード例 #48
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 def test_set_status_respects_pipeline(self):
     self.order = create_order(status='SHIPPED')
     with self.assertRaises(InvalidOrderStatus):
         self.order.set_status('PENDING')
コード例 #49
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 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)
コード例 #50
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 def test_available_statuses_for_shipped_order(self):
     self.order = create_order(status='SHIPPED')
     self.assertEqual(('COMPLETE',), self.order.available_statuses())
コード例 #51
0
ファイル: tests.py プロジェクト: PavelVavruska/django-oscar
 def test_no_statuses_available_for_no_status(self):
     self.order = create_order()
     self.assertEqual((), self.order.available_statuses())
コード例 #52
0
 def test_available_statuses_for_shipped_order(self):
     self.order = create_order(status='SHIPPED')
     self.assertEqual(('COMPLETE', ), self.order.available_statuses())
コード例 #53
0
 def test_set_status_respects_pipeline(self):
     self.order = create_order(status='SHIPPED')
     with self.assertRaises(InvalidOrderStatus):
         self.order.set_status('PENDING')
コード例 #54
0
 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)
コード例 #55
0
ファイル: order_tests.py プロジェクト: MechanisM/django-oscar
 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()
コード例 #56
0
 def setUp(self):
     self.order = create_order()
コード例 #57
0
 def test_no_statuses_available_for_no_status(self):
     self.order = create_order()
     self.assertEqual((), self.order.available_statuses())
コード例 #58
0
 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)
コード例 #59
0
 def setUp(self):
     self.user = User.objects.create_user('_', self.email, self.password)
     self.order = create_order(user=self.user)
コード例 #60
0
 def test_available_statuses_for_pending(self):
     self.order = create_order(status='PENDING')
     self.assertEqual(('SHIPPED', 'CANCELLED'),
                      self.order.available_statuses())