class LineItemTest(TestCase): def setUp(self): self.shift = Shift(begin_date=timezone.now()) self.shift.save() self.transaction = self.shift.create_transaction() self.transaction.save() self.vendor = Vendor(name='Brand X') self.vendor.save() self.grocery = Grocery(upc='12345', name='Product X', vendor=self.vendor, price=23.45, taxable=True, scalable=False) self.grocery.save() def test_line_item_total(self): line_item = self.transaction.create_line_item(self.grocery, 2) line_item.save() self.assertEqual(line_item.total(), Decimal(46.90)) def test_can_cancel(self): line_item = self.transaction.create_line_item(self.grocery, 2) line_item.cancel() line_item.save() self.assertEqual(line_item.status, 'INACTIVE')
class LineItemTest(TestCase): def setUp(self): self.shift = Shift(begin_date=timezone.now()) self.shift.save() self.transaction = self.shift.create_transaction() self.transaction.save() self.vendor = Vendor(name='Brand X') self.vendor.save() self.grocery = Grocery( upc='12345', name='Product X', vendor=self.vendor, price=23.45, taxable=True, scalable=False ) self.grocery.save() def test_line_item_total(self): line_item = self.transaction.create_line_item(self.grocery, 2) line_item.save() self.assertEqual(line_item.total(), Decimal(46.90)) def test_can_cancel(self): line_item = self.transaction.create_line_item(self.grocery, 2) line_item.cancel() line_item.save() self.assertEqual(line_item.status, 'INACTIVE')
def create_grocery(request): item = Grocery(upc=request.POST['upc']) if 'price' in request.POST: item.price = request.POST['price'] if 'name' in request.POST: item.name = request.POST['name'] if 'scalable' in request.POST: if request.POST['scalable'] == 'true': item.scalable = True else: item.scalable = False if 'taxable' in request.POST: if request.POST['taxable'] == 'true': item.taxable = True else: item.taxable = False if 'vendor' in request.POST: try: vendor = Vendor.objects.get(name=request.POST['vendor']) except ObjectDoesNotExist: vendor = Vendor(name=request.POST['vendor']) vendor.save() item.vendor = vendor item.save() context_instance = {'item': item} return render( request, 'inventory/update_grocery.json', context_instance, content_type="application/json" )
def setUp(self): self.shift = Shift(begin_date=timezone.now()) self.shift.save() self.transaction = self.shift.create_transaction() self.transaction.save() self.vendor = Vendor(name='Brand X') self.vendor.save() self.grocery = Grocery(upc='12345', name='Product X', vendor=self.vendor, price=23.45, taxable=True, scalable=False) self.grocery.save()
def setUp(self): self.shift = Shift(begin_date=timezone.now()) self.shift.save() self.transaction = self.shift.create_transaction() self.transaction.save() self.vendor = Vendor(name='Brand X') self.vendor.save() self.grocery = Grocery( upc='12345', name='Product X', vendor=self.vendor, price=23.45, taxable=True, scalable=False ) self.grocery.save()
class TransactionTest(TestCase): def setUp(self): self.shift = Shift(begin_date=timezone.now()) self.shift.save() self.transaction = self.shift.create_transaction() self.transaction.save() self.vendor = Vendor(name='Brand X') self.vendor.save() self.grocery = Grocery( upc='12345', name='Product X', vendor=self.vendor, price=23.45, taxable=True, scalable=False ) self.grocery.save() def test_end_transaction(self): self.transaction.end_transaction() self.assertIsNotNone(self.transaction.finish_date) def test_cannot_end_ended_transaction(self): self.transaction.end_transaction() finish_date = self.transaction.finish_date self.transaction.end_transaction() self.assertEqual(self.transaction.finish_date, finish_date) def test_create_line_item(self): line_item = self.transaction.create_line_item(self.grocery, 1) self.assertIsNotNone(line_item) def test_cannot_create_line_item_on_ended_transaction(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.end_transaction() line_item = self.transaction.create_line_item(self.grocery, 1) self.assertIsNone(line_item) def test_line_item_description(self): line_item = self.transaction.create_line_item(self.grocery, 1) self.assertEqual(line_item.description, 'Brand X Product X') def test_get_totals(self): line_item = self.transaction.create_line_item(self.grocery, 1) line_item.save() line_item = self.transaction.create_line_item(self.grocery, 1) line_item.save() transaction_total = self.transaction.get_totals() self.assertEqual(transaction_total.sub_total, Decimal('46.90')) self.assertEqual(transaction_total.tax_total, Decimal('3.28')) self.assertEqual(transaction_total.total, Decimal('50.18')) def test_paid_tender_ends_transaction(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.create_tender(25.09, 'CASH') self.assertIsNotNone(self.transaction.finish_date) def test_transaction_totals_with_canceled_item(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.create_line_item(self.grocery, 1).cancel() transaction_total = self.transaction.get_totals() self.assertEqual(transaction_total.total, Decimal('50.18')) self.assertEqual(transaction_total.tax_total, Decimal('3.28')) self.assertEqual(transaction_total.total, Decimal('50.18')) def test_transaction_totals_with_canceled_item_again(self): line_item = self.transaction.create_line_item(self.grocery, 1) line_item.save() line_item = self.transaction.create_line_item(self.grocery, 1) line_item.cancel() line_item.save() transaction_total = self.transaction.get_totals() self.assertEqual(transaction_total.sub_total, Decimal('23.45')) self.assertEqual(transaction_total.tax_total, Decimal('1.64')) self.assertEqual(transaction_total.total, Decimal('25.09')) def test_cancel_sets_status(self): self.transaction.cancel() self.assertEqual(self.transaction.status, 'CANCELED') def test_cancel_cancels_children(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.cancel() for line_item in self.transaction.lineitem_set.all(): self.assertEqual(line_item.status, 'INACTIVE') def test_cancel_ends_shift(self): self.transaction.cancel() self.assertIsNotNone(self.transaction.finish_date)
def create_grocery(request): item = Grocery(upc=request.POST['upc']) if 'price' in request.POST: item.price = request.POST['price'] if 'name' in request.POST: item.name = request.POST['name'] if 'scalable' in request.POST: if request.POST['scalable'] == 'true': item.scalable = True else: item.scalable = False if 'taxable' in request.POST: if request.POST['taxable'] == 'true': item.taxable = True else: item.taxable = False if 'vendor' in request.POST: try: vendor = Vendor.objects.get(name=request.POST['vendor']) except ObjectDoesNotExist: vendor = get_object_or_404(Vendor, request.POST['vendor']) vendor.save() item.vendor = vendor item.save() context_instance = {'item': item} return render(request, 'inventory/update_grocery.json', context_instance, content_type="application/json")
class TransactionTest(TestCase): def setUp(self): self.shift = Shift(begin_date=timezone.now()) self.shift.save() self.transaction = self.shift.create_transaction() self.transaction.save() self.vendor = Vendor(name='Brand X') self.vendor.save() self.grocery = Grocery(upc='12345', name='Product X', vendor=self.vendor, price=23.45, taxable=True, scalable=False) self.grocery.save() def test_end_transaction(self): self.transaction.end_transaction() self.assertIsNotNone(self.transaction.finish_date) def test_cannot_end_ended_transaction(self): self.transaction.end_transaction() finish_date = self.transaction.finish_date self.transaction.end_transaction() self.assertEqual(self.transaction.finish_date, finish_date) def test_create_line_item(self): line_item = self.transaction.create_line_item(self.grocery, 1) self.assertIsNotNone(line_item) def test_cannot_create_line_item_on_ended_transaction(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.end_transaction() line_item = self.transaction.create_line_item(self.grocery, 1) self.assertIsNone(line_item) def test_line_item_description(self): line_item = self.transaction.create_line_item(self.grocery, 1) self.assertEqual(line_item.description, 'Brand X Product X') def test_get_totals(self): line_item = self.transaction.create_line_item(self.grocery, 1) line_item.save() line_item = self.transaction.create_line_item(self.grocery, 1) line_item.save() transaction_total = self.transaction.get_totals() self.assertEqual(transaction_total.sub_total, Decimal('46.90')) self.assertEqual(transaction_total.tax_total, Decimal('3.28')) self.assertEqual(transaction_total.total, Decimal('50.18')) def test_paid_tender_ends_transaction(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.create_tender(25.09, 'CASH') self.assertIsNotNone(self.transaction.finish_date) def test_transaction_totals_with_canceled_item(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.create_line_item(self.grocery, 1).cancel() transaction_total = self.transaction.get_totals() self.assertEqual(transaction_total.total, Decimal('50.18')) self.assertEqual(transaction_total.tax_total, Decimal('3.28')) self.assertEqual(transaction_total.total, Decimal('50.18')) def test_transaction_totals_with_canceled_item_again(self): line_item = self.transaction.create_line_item(self.grocery, 1) line_item.save() line_item = self.transaction.create_line_item(self.grocery, 1) line_item.cancel() line_item.save() transaction_total = self.transaction.get_totals() self.assertEqual(transaction_total.sub_total, Decimal('23.45')) self.assertEqual(transaction_total.tax_total, Decimal('1.64')) self.assertEqual(transaction_total.total, Decimal('25.09')) def test_cancel_sets_status(self): self.transaction.cancel() self.assertEqual(self.transaction.status, 'CANCELED') def test_cancel_cancels_children(self): self.transaction.create_line_item(self.grocery, 1) self.transaction.cancel() for line_item in self.transaction.lineitem_set.all(): self.assertEqual(line_item.status, 'INACTIVE') def test_cancel_ends_shift(self): self.transaction.cancel() self.assertIsNotNone(self.transaction.finish_date)
def setUp(self): self.vendor = Vendor(name='Brand X') self.grocery = Grocery(upc='12345', name='Product X', vendor=self.vendor)