Beispiel #1
0
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')
Beispiel #2
0
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"
    )
Beispiel #3
0
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')
Beispiel #4
0
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")
Beispiel #5
0
 def update_vendor(self, request, *args, **kwargs):
     grocery = self.get_object()
     try:
         vendor = Vendor.objects.get(name=request.POST['vendor'])
     except ObjectDoesNotExist:
         vendor = Vendor(name=request.POST['vendor'])
         vendor.save()
     grocery.vendor = vendor
     grocery.save()
     grocery = self.get_object()
     serializer = self.get_serializer(grocery)
     return Response(serializer.data)
Beispiel #6
0
 def update_vendor(self, request, *args, **kwargs):
     grocery = self.get_object()
     try:
         vendor = Vendor.objects.get(name=request.POST["vendor"])
     except ObjectDoesNotExist:
         vendor = Vendor(name=request.POST["vendor"])
         vendor.save()
     grocery.vendor = vendor
     grocery.save()
     grocery = self.get_object()
     serializer = self.get_serializer(grocery)
     return Response(serializer.data)
Beispiel #7
0
 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()
Beispiel #8
0
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.item = Item(\
            upc='12345',\
            name='Product X',\
            vendor=self.vendor,\
            price=23.45,\
            taxable=True\
        )
        self.item.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.item, 1)
        self.assertIsNotNone(line_item)

    def test_cannot_create_line_item_on_ended_transaction(self):
        line_item = self.transaction.create_line_item(self.item, 1)
        self.transaction.end_transaction()
        line_item = self.transaction.create_line_item(self.item, 1)
        self.assertIsNone(line_item)

    def test_line_item_description(self):
        line_item = self.transaction.create_line_item(self.item, 1)
        self.assertEqual(line_item.description, 'Brand X Product X')

    def test_get_totals(self):
        line_item = self.transaction.create_line_item(self.item, 1)
        line_item.save()
        line_item = self.transaction.create_line_item(self.item, 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'))
Beispiel #9
0
def createVirtualHosts(file_path, names):
    """ Given the datastream provided by openDataStream(), this method 
      creates virtual host objects, linked with their respective 
      hardware manufacturer
  """
    # Open the datastream and get a line count
    records, datastream = openDataSource(file_path, names)

    i = 0
    # For every line in the file (lines represent Virtual Machine Hosts)
    for row in datastream:
        print row["Manufacturer"],

        # Seek an existing vendor (since vendor is a requirement)
        if not Vendor.objects.filter(name=row["Manufacturer"]):
            # create vendor
            v = Vendor()
            v.name = row["Manufacturer"]
            v.save()
            print " ...created"
        else:
            v = Vendor.objects.get(name=row["Manufacturer"])
            print " ...exists"

        print row["Name"],

        # Seek out an existing Virtual Machine Host
        if not VMHost.objects.filter(name=row["Name"]):
            # If it does not exist, create one and specify the name
            vmh = VMHost()
            vmh.name = row["Name"]
            print " ...created"
        else:
            # If it exists, grab it and assign it to vmh variable
            vmh = VMHost.objects.get(name=row["Name"])
            print " ...exists"

        # We can now update the object and save it
        vmh.manufacturer = v
        vmh.model = row["Model"]
        vmh.cpuCount = int(row["NumCpu"])
        vmh.cpuTotal = int(row["CpuTotalMhz"])
        vmh.cpuUsage = row["CpuUsageMhz"]
        vmh.processor = row["ProcessorType"]
        vmh.save()
        i += 1
        print "updated"
    result = i == records
    assert result, "record count {0} does not match the count of records processed {1}".format(records, i)
Beispiel #10
0
def createVirtualHosts(file_path, names):
  ''' Given the datastream provided by openDataStream(), this method 
      creates virtual host objects, linked with their respective 
      hardware manufacturer
  '''
  # Open the datastream and get a line count
  records, datastream = openDataSource(file_path, names)

  i = 0
  # For every line in the file (lines represent Virtual Machine Hosts)
  for row in datastream:
      print row['Manufacturer'],
      
      # Seek an existing vendor (since vendor is a requirement)
      if not Vendor.objects.filter(name=row['Manufacturer']):
          # create vendor
          v  =  Vendor()
          v.name = row['Manufacturer']
          v.save()
          print ' ...created'
      else:
          v  = Vendor.objects.get(name=row['Manufacturer'])
          print ' ...exists'
      
      print row['Name'],
      
      # Seek out an existing Virtual Machine Host
      if not VMHost.objects.filter(name=row['Name']):
          # If it does not exist, create one and specify the name
          vmh      = VMHost()
          vmh.name = row['Name']
          print ' ...created'
      else:
          # If it exists, grab it and assign it to vmh variable
          vmh = VMHost.objects.get(name=row['Name'])
          print ' ...exists'
  
      # We can now update the object and save it
      vmh.manufacturer = v
      vmh.model        = row['Model']
      vmh.cpuCount     = int(row['NumCpu'])
      vmh.cpuTotal     = int(row['CpuTotalMhz'])
      vmh.cpuUsage     = row['CpuUsageMhz']
      vmh.processor    = row['ProcessorType']
      vmh.save()
      i += 1
      print 'updated'
  result =(i == records)
  assert result, "record count {0} does not match the count of records processed {1}".format(records,i)
Beispiel #11
0
 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.item = Item(\
         upc='12345',\
         name='Product X',\
         vendor=self.vendor,\
         price=23.45,\
         taxable=True\
     )
     self.item.save()
Beispiel #12
0
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.item = Item(\
            upc='12345',\
            name='Product X',\
            vendor=self.vendor,\
            price=23.45,\
            taxable=True\
        )
        self.item.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.item, 1)
        self.assertIsNotNone(line_item)
    def test_cannot_create_line_item_on_ended_transaction(self):
        line_item = self.transaction.create_line_item(self.item, 1)
        self.transaction.end_transaction()
        line_item = self.transaction.create_line_item(self.item, 1)
        self.assertIsNone(line_item)
    def test_line_item_description(self):
        line_item = self.transaction.create_line_item(self.item, 1)
        self.assertEqual(line_item.description, 'Brand X Product X')
    def test_get_totals(self):
        line_item = self.transaction.create_line_item(self.item, 1)
        line_item.save()
        line_item = self.transaction.create_line_item(self.item, 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.item, 1)
        self.transaction.create_tender(25.09, 'CASH')
        self.assertIsNotNone(self.transaction.finish_date)
Beispiel #13
0
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.item = Item(\
            upc='12345',\
            name='Product X',\
            vendor=self.vendor,\
            price=23.45,\
            taxable=True\
        )
        self.item.save()
    def test_line_item_total(self):
        line_item = self.transaction.create_line_item(self.item, 2)
        line_item.save()
        self.assertEqual(line_item.total(), Decimal(46.90))
Beispiel #14
0
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.item = Item(\
            upc='12345',\
            name='Product X',\
            vendor=self.vendor,\
            price=23.45,\
            taxable=True\
        )
        self.item.save()

    def test_line_item_total(self):
        line_item = self.transaction.create_line_item(self.item, 2)
        line_item.save()
        self.assertEqual(line_item.total(), Decimal(46.90))
Beispiel #15
0
 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.item = Item(\
         upc='12345',\
         name='Product X',\
         vendor=self.vendor,\
         price=23.45,\
         taxable=True\
     )
     self.item.save()
Beispiel #16
0
 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()
Beispiel #17
0
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)
Beispiel #18
0
 def setUp(self):
     self.vendor = Vendor(name='Brand X')
     self.item = Item(upc='12345', name='Product X', vendor=self.vendor)
Beispiel #19
0
 def setUp(self):
     self.vendor = Vendor(name='Brand X')
Beispiel #20
0
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)
Beispiel #21
0
 def setUp(self):
     self.vendor = Vendor(name='Brand X')
     self.grocery = Grocery(upc='12345',
                            name='Product X',
                            vendor=self.vendor)