class OrderModelTest(TestCase): def setUp(self): self.user = Profile.objects.create_user( username='******', password='******', name='Leonardo', full_display_name='Leonardo Gregório', email='*****@*****.**') self.product = Product( name='Running Shoes', description='Soft and light running shoes.', price=100, ) self.product.save() self.order = Order(user=self.user) self.order.save() self.order_item = OrderItem(order=self.order, product=self.product, current_price=self.product.price, quantity=1) self.order_item.save() def test_create_order(self): """Ensure we can create a new Order""" self.assertTrue(Order.objects.exists()) def test_create_item(self): """Ensure we can create a OrderItem""" self.assertTrue(OrderItem.objects.exists())
def test_create_order_consists_of_for_order_and_book(self): """Retrieve a list of orders consisting of books.""" b1 = Book('9780439708180', "Harry Potter and the Philosopher's Stone", "J. K. Rowling", "Scholastic", 1999, 10, 6.79, "paperback", "fantasy", "fantasy") b1.save() c1 = Customer('foo', '*****@*****.**', "3241234", "12341234", "coolstreet") c1.save() o1 = Order(c1.id) o1.save() oco = OrderConsistsOf(o1.id, b1.isbn13, 42) oco.save() q = OrderConsistsOf.query.filter_by(consists_qty=42).all() assert len(q) == 1
def setUp(self): self.user = Profile.objects.create_user( username='******', password='******', name='Leonardo', full_display_name='Leonardo Gregório', email='*****@*****.**') self.product = Product( name='Running Shoes', description='Soft and light running shoes.', price=100, ) self.product.save() self.order = Order(user=self.user) self.order.save() self.order_item = OrderItem(order=self.order, product=self.product, current_price=self.product.price, quantity=1) self.order_item.save()
def test_from_xml_should_parse_xml_with_one_orders_when_correct(self): data_ok = read_file(os.path.join(XML_PATH, 'responses/complete_order_status_one_order_ok.xml')) order = Order.from_xml(data_ok) self.assertIsInstance(order, Order) self.assertEqual('10001', order.Id) self.assertEqual('July 18 2010 12:13:15', order.order_date) order_items = list(order.order_items) self.assertEqual(1, len(order_items)) self.assertIsInstance(order_items[0], OrderItem) self.assertEqual('39393', order_items[0].OrderId) self.assertEqual('July 11 2010', order_items[0].expected_ship_date) self.assertEqual('', order_items[0].actual_ship_date)
def order_book(isbn13, customerid): form = AddOrderForm(request.form) if request.method == 'POST': order = Order.create(customer_id=customerid) flash('You, {}, have ordered a book!'.format( customerid), 'success') # order = Order.query.filter_by(customer_id=customerid) # order = order.first() OrderConsistsOf.create(consists_order_id=order.id, consists_isbn13=isbn13, consists_qty=form.qty.data) flash('You have ordered the book: {}!'.format( isbn13), 'success') return "Good job!" else: flash_errors(form) return render_template('orders/addorder.html', form=form)
def test_retreive_list_of_order(self): """Retrieve a list of orders.""" # http://factoryboy.readthedocs.io/en/latest/examples.html?highlight=create_batch#factories customer1 = Customer('foo1', '*****@*****.**', "3241234", "12341234", "coolstreet") customer1.save() order1 = Order(customer1.id) order1.save() customer2 = Customer('foo2', '*****@*****.**', "3241234", "12341234", "coolstreet") customer2.save() order2 = Order(customer2.id) order2.save() l = Order.query.all() assert len(l) == 2
def order_book(isbn13): customerid = current_user.get_id() form = AddOrderForm(request.form) if request.method == 'POST': order = Order.create(customer_id=customerid) flash('You, {}, have ordered a book!'.format(customerid), 'success') # order = Order.query.filter_by(customer_id=customerid) # order = order.first() OrderConsistsOf.create(consists_order_id=order.id, consists_isbn13=isbn13, consists_qty=form.qty.data) flash('You have ordered the book: {}!'.format(isbn13), 'success') return redirect(url_for('book.browse')) else: flash_errors(form) RECOMMENDATIONS = [] """Get book recommendation.""" if current_user.is_authenticated: id = current_user.get_id() # get the book rec q1 = db.session.query(OrderConsistsOf.consists_order_id).filter(OrderConsistsOf.consists_isbn13 == isbn13).\ filter(OrderConsistsOf.consists_order_id != id).all() for q in q1: isbn13_list = db.session.query(OrderConsistsOf.consists_isbn13).filter(OrderConsistsOf.consists_order_id == q[0]).\ filter(OrderConsistsOf.consists_isbn13 != isbn13).all() if isbn13_list != []: for i in isbn13_list: RECOMMENDATIONS.append( db.session.query(Book).filter( Book.isbn13 == i[0]).first()) return render_template('orders/addorder.html', form=form, recommendations=RECOMMENDATIONS)
def test_should_return_json_when_existing_order(self, mocked__client): mocked__client.from_settings.return_value.get_check_user_order.return_value = Order( xmltodict.parse(read_file(COMPLETE_ORDER_STATUS))) self.request.user = self.user response = OrderDetailView.as_view()(self.request) self.assertEqual(200, response.status_code) order = response.context_data['order'] self.assertEqual('10001', order.Id) self.assertEqual('July 18 2010 12:13:15', order.order_date) self.assertEqual('John Doe, 123 State St, Burlington, VT 05491', order.shipping_address) order_items = list(order.order_items) self.assertEqual(2, len(order_items)) self.assertEqual('ACME Drill Set', order_items[0].Name) self.assertEqual('39393', order_items[0].OrderId) self.assertEqual('4847292', order_items[0].ProductId) self.assertEqual('July 22 2010', order_items[0].ship_date) self.assertEqual('2', order_items[0].Quantity) self.assertEqual('500.00', order_items[0].Price) self.assertEqual('1000.00', order_items[0].total_price) self.assertEqual('ACME Other thing', order_items[1].Name) self.assertEqual('39394', order_items[1].OrderId) self.assertEqual('979826', order_items[1].ProductId) self.assertEqual('July 18 2010', order_items[1].ship_date) self.assertEqual('1', order_items[1].Quantity) self.assertEqual('150.00', order_items[1].Price) self.assertEqual('150.00', order_items[1].total_price)
"""Order dummy data.""" from store.orders.models import Order # from store.orders.models import OrderConsistsOf # Orders o1 = Order('cid1') o2 = Order('cid2') o3 = Order('cid3') o4 = Order('cid4') o5 = Order('cid5') o6 = Order('cid6') o7 = Order('cid7') o8 = Order('cid8') o9 = Order('cid9') o10 = Order('cid10') o11 = Order('cid1') o12 = Order('cid1') o13 = Order('cid1') o14 = Order('cid2') o15 = Order('cid7') o16 = Order('cid7') o17 = Order('cid7') o18 = Order('cid3') # oco1 = OrderConsistsOf(o1.id'9780439139595', 3) # oco2 = OrderConsistsOf(o2.id'9780345803498', 5) # oco3 = OrderConsistsOf(o3.id'9780345803498', 1) # oco4 = OrderConsistsOf(o4.id'9780345803481', 2) # oco5 = OrderConsistsOf(o5.id'9780545139700', 5) # oco6 = OrderConsistsOf(o6.id'9780439358071', 4)