def get_order_payloads(order): items = [ ga.item( ol.product_name, ol.unit_price.gross, quantity=ol.quantity, item_id=ol.product_sku) for ol in order] return ga.transaction( order.id, items, revenue=order.total.gross, tax=order.total.tax, shipping=order.shipping_price.net)
def test_required_params(single_item_list): generator = transaction('trans-01', single_item_list, Money(10, 'USD')) assert list(generator) == [ { 't': 'transaction', 'ti': 'trans-01', 'cu': 'USD', 'tr': '10', 'tt': '0'}, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01'}]
def test_affiliation(single_item_list): generator = transaction( 'trans-01', single_item_list, Money(10, 'USD'), affiliation='loyalty') assert list(generator) == [ { 't': 'transaction', 'ti': 'trans-01', 'tr': '10', 'tt': '0', 'cu': 'USD', 'ta': 'loyalty'}, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01'}]
def test_tax(single_item_list): generator = transaction( 'trans-01', single_item_list, Money(10, 'USD'), tax=Money(2, 'USD')) assert list(generator) == [ { 't': 'transaction', 'ti': 'trans-01', 'cu': 'USD', 'tr': '10', 'tt': '2'}, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01'}]
def test_shipping(single_item_list): generator = transaction( 'trans-01', single_item_list, Money(10, 'USD'), shipping=Money(100, currency='USD')) assert list(generator) == [ { 't': 'transaction', 'ti': 'trans-01', 'cu': 'USD', 'tr': '10', 'ts': '100', 'tt': '0'}, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01'}]
def get_task_payloads(task): items = [ ga.item(ol.skill_name, ol.unit_price.gross, quantity=ol.quantity, item_id=ol.skill_sku) for ol in task ] return ga.transaction(task.id, items, revenue=task.total.gross, tax=task.total.tax, delivery=task.delivery_price.net)
def test_required_params(single_item_list): generator = transaction('trans-01', single_item_list, Money(10, 'USD')) assert list(generator) == [{ 't': 'transaction', 'ti': 'trans-01', 'cu': 'USD', 'tr': '10', 'tt': '0' }, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01' }]
def get_order_payloads(order): items = [ ga.item( str(order_line), order_line.unit_price.gross, quantity=order_line.quantity, item_id=order_line.product_sku, ) for order_line in order ] return ga.transaction( order.id, items, revenue=order.total.gross, tax=order.total.tax, shipping=order.shipping_price.net, )
def test_tax(single_item_list): generator = transaction('trans-01', single_item_list, Money(10, 'USD'), tax=Money(2, 'USD')) assert list(generator) == [{ 't': 'transaction', 'ti': 'trans-01', 'cu': 'USD', 'tr': '10', 'tt': '2' }, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01' }]
def test_affiliation(single_item_list): generator = transaction('trans-01', single_item_list, Money(10, 'USD'), affiliation='loyalty') assert list(generator) == [{ 't': 'transaction', 'ti': 'trans-01', 'tr': '10', 'tt': '0', 'cu': 'USD', 'ta': 'loyalty' }, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01' }]
def test_shipping(single_item_list): generator = transaction('trans-01', single_item_list, Money(10, 'USD'), shipping=Money(100, currency='USD')) assert list(generator) == [{ 't': 'transaction', 'ti': 'trans-01', 'cu': 'USD', 'tr': '10', 'ts': '100', 'tt': '0' }, { 't': 'item', 'in': 'item-01', 'ip': '10', 'cu': 'USD', 'ti': 'trans-01' }]
def test_no_items(): generator = transaction('trans-01', [], Money(0, 'USD')) with pytest.raises(ValueError): list(generator)
def test_no_items(): generator = transaction('trans-01', [], Money(0, 'USD')) with pytest.raises(ValueError): list(generator)