예제 #1
0
    def test_create_order_works(self):
        p1 = factories.ProductFactory()
        p2 = factories.ProductFactory()
        user1 = factories.UserFactory()
        billing = factories.AddressFactory(user=user1)
        shipping = factories.AddressFactory(user=user1)

        basket = models.Basket.objects.create(user=user1)
        models.BasketLine.objects.create(basket=basket, product=p1)
        models.BasketLine.objects.create(basket=basket, product=p2)

        with self.assertLogs("main.models", level="INFO") as cm:
            order = basket.create_order(billing, shipping)

        self.assertGreaterEqual(len(cm.output), 1)

        order.refresh_from_db()

        self.assertEqual(order.user, user1)
        self.assertEqual(order.billing_address1, billing.address1)
        self.assertEqual(order.shipping_address1, shipping.address1)

        self.assertEqual(order.lines.all().count(), 2)
        lines = order.lines.all()
        self.assertEqual(lines[0].product, p1)
        self.assertEqual(lines[1].product, p2)
예제 #2
0
    def test_orderlines_are_saved(self):
        p1 = factories.ProductFactory()
        a1 = factories.AddressFactory()
        user1 = factories.UserFactory()
        order_data = {
                "status":10,
                "billing_name":"test1",
                "billing_address1":a1.address1,
                "billing_address2":a1.address2,
                "billing_zip_code":a1.zip_code, 
                "billing_city":a1.city,
                "billing_country":a1.country, 
                "shipping_name":"hello",
                "shipping_address1": a1.address1,
                "shipping_address2": a1.address2,
                "shipping_zip_code": a1.zip_code, 
                "shipping_city": a1.city,
                "shipping_country": a1.country,
        }
        order = models.Order.objects.create(
            user=user1,
            **order_data
        )

        orderline = models.OrderLine.objects.create(
            product=p1,
            order=order,
            status=10
        )
        orderline.status=30
        orderline.save()
        orderline.refresh_from_db()
        self.assertEqual(order.status,30)

        
예제 #3
0
 def test_order_create_with_line(self):
     p1 = factories.ProductFactory()
     p2 = factories.ProductFactory()
     a1 = factories.AddressFactory(user=self.user)
     temp_data = {
             "status":20,
             "billing_name":"test1",
             "billing_address1":a1.address1,
             "billing_address2":a1.address2,
             "billing_zip_code":a1.zip_code, 
             "billing_city":a1.city,
             "billing_country":a1.country, 
             "shipping_name":"hello",
             "shipping_address1": a1.address1,
             "shipping_address2": a1.address2,
             "shipping_zip_code": a1.zip_code, 
             "shipping_city": a1.city,
             "shipping_country": a1.country,
     }
     order_line_data = {
         "order":temp_data,
         "product":p1.pk,
         "status":10,
     }
     rv = self.client.post(
         order_orderline_page,order_line_data,format='json'
     )
     print(rv.data)
     order_list = models.Order.objects.all()
     order_line_list = models.OrderLine.objects.all()
     self.assertTrue(len(order_list),1)
     self.assertTrue(len(order_line_list),1)
예제 #4
0
    def test_create_order_works(self):
        """
        """

        prod_one = factories.ProductFactory()
        prod_two = factories.ProductFactory()
        user_one = factories.UserFactory()
        billing = factories.AddressFactory(user=user_one)
        shipping = factories.AddressFactory(user=user_one)

        basket = models.Basket.objects.create(user=user_one)

        models.BasketLine.objects.create(basket=basket, product=prod_one)
        models.BasketLine.objects.create(basket=basket, product=prod_two)

        with self.assertLogs("main.models", level="INFO") as cm:
            order = basket.create_order(billing, shipping)

        self.assertGreaterEqual(len(cm.output), 1)

        order.refresh_from_db()

        # user_one's order
        self.assertEquals(order.user, user_one)

        # correct billing|shipping addresses
        self.assertEquals(order.billing_address1, billing.address1)
        self.assertEquals(order.shipping_address1, shipping.address1)

        # two products while checking out
        self.assertEquals(order.lines.all().count(), 2)

        # same as the prev line, just break it down as a list
        lines = order.lines.all()
        self.assertEquals(lines[0].product, prod_one)
        self.assertEquals(lines[1].product, prod_two)
예제 #5
0
 def test_order_views(self):
     p1 = factories.ProductFactory()
     p2 = factories.ProductFactory()
     a1 = factories.AddressFactory(user=self.user)
     temp_data = {
             "status":20,
             "billing_name":"test1",
             "billing_address1":a1.address1,
             "billing_address2":a1.address2,
             "billing_zip_code":a1.zip_code, 
             "billing_city":a1.city,
             "billing_country":a1.country, 
             "shipping_name":"hello",
             "shipping_address1": a1.address1,
             "shipping_address2": a1.address2,
             "shipping_zip_code": a1.zip_code, 
             "shipping_city": a1.city,
             "shipping_country": a1.country
     }
     rv = self.client.post(
         order_page,temp_data
     )
     order_list = models.Order.objects.all()
     self.assertTrue(len(order_list),1)