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)
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)
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)
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)
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)