feat: add initial support for order item events
so far just attaching events on creation, but then can view them
This commit is contained in:
parent
c79b0262f3
commit
b4deea76e0
10 changed files with 456 additions and 13 deletions
|
@ -1109,6 +1109,20 @@ class TestNewOrderBatchHandler(DataTestCase):
|
|||
self.assertEqual(item.unit_cost, decimal.Decimal('3.99'))
|
||||
self.assertEqual(item.unit_price_reg, decimal.Decimal('5.99'))
|
||||
|
||||
def test_set_initial_item_status(self):
|
||||
model = self.app.model
|
||||
enum = self.app.enum
|
||||
handler = self.make_handler()
|
||||
user = model.User(username='barney')
|
||||
item = model.OrderItem()
|
||||
self.assertIsNone(item.status_code)
|
||||
self.assertEqual(len(item.events), 0)
|
||||
handler.set_initial_item_status(item, user)
|
||||
self.assertEqual(item.status_code, enum.ORDER_ITEM_STATUS_READY)
|
||||
self.assertEqual(len(item.events), 2)
|
||||
self.assertEqual(item.events[0].type_code, enum.ORDER_ITEM_EVENT_INITIATED)
|
||||
self.assertEqual(item.events[1].type_code, enum.ORDER_ITEM_EVENT_READY)
|
||||
|
||||
def test_execute(self):
|
||||
model = self.app.model
|
||||
enum = self.app.enum
|
||||
|
|
|
@ -19,6 +19,11 @@ class TestOrder(DataTestCase):
|
|||
|
||||
class TestOrderItem(DataTestCase):
|
||||
|
||||
def make_config(self, **kw):
|
||||
config = super().make_config(**kw)
|
||||
config.setdefault('wutta.enum_spec', 'sideshow.enum')
|
||||
return config
|
||||
|
||||
def test_full_description(self):
|
||||
|
||||
item = mod.OrderItem()
|
||||
|
@ -44,3 +49,15 @@ class TestOrderItem(DataTestCase):
|
|||
product_description='Vinegar',
|
||||
product_size='32oz')
|
||||
self.assertEqual(str(item), "Bragg Vinegar 32oz")
|
||||
|
||||
def test_add_event(self):
|
||||
model = self.app.model
|
||||
enum = self.app.enum
|
||||
user = model.User(username='barney')
|
||||
item = mod.OrderItem()
|
||||
self.assertEqual(item.events, [])
|
||||
item.add_event(enum.ORDER_ITEM_EVENT_INITIATED, user)
|
||||
item.add_event(enum.ORDER_ITEM_EVENT_READY, user)
|
||||
self.assertEqual(len(item.events), 2)
|
||||
self.assertEqual(item.events[0].type_code, enum.ORDER_ITEM_EVENT_INITIATED)
|
||||
self.assertEqual(item.events[1].type_code, enum.ORDER_ITEM_EVENT_READY)
|
||||
|
|
|
@ -1338,14 +1338,16 @@ class TestOrderItemView(WebTestCase):
|
|||
item = model.OrderItem(order_qty=2, order_uom=enum.ORDER_UOM_CASE, case_size=8)
|
||||
order.items.append(item)
|
||||
|
||||
with patch.object(view, 'viewing', new=True):
|
||||
context = view.get_template_context({'instance': item})
|
||||
self.assertIn('item', context)
|
||||
self.assertIs(context['item'], item)
|
||||
self.assertIn('order', context)
|
||||
self.assertIs(context['order'], order)
|
||||
self.assertIn('order_qty_uom_text', context)
|
||||
self.assertEqual(context['order_qty_uom_text'], "2 Cases (× 8 = 16 Units)")
|
||||
with patch.object(self.request, 'is_root', new=True):
|
||||
with patch.object(view, 'viewing', new=True):
|
||||
form = view.make_model_form(model_instance=item)
|
||||
context = view.get_template_context({'instance': item, 'form': form})
|
||||
self.assertIn('item', context)
|
||||
self.assertIs(context['item'], item)
|
||||
self.assertIn('order', context)
|
||||
self.assertIs(context['order'], order)
|
||||
self.assertIn('order_qty_uom_text', context)
|
||||
self.assertEqual(context['order_qty_uom_text'], "2 Cases (× 8 = 16 Units)")
|
||||
|
||||
def test_get_xref_buttons(self):
|
||||
self.pyramid_config.add_route('orders.view', '/orders/{uuid}')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue