# -*- coding: utf-8 -*- import pytest import datetime import dingguo import yaml import os def test_order_dict_repr(): order = dingguo.Order( platform = u'platform', order_id = u'id', order_date = datetime.datetime(2016, 5, 8, 0, 18, 17), customer_id = u'customer', ) item_0 = dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR')) order.items.append(item_0) item_1 = dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR')) order.items.append(item_1) discount_0 = dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR')) order.discounts.append(discount_0) discount_1 = dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR')) order.discounts.append(discount_1) assert order.dict_repr() == { 'articles': [item_0, item_1], 'customer_id': u'customer', 'discounts': [discount_0, discount_1], 'order_date': u'2016-05-08', 'order_id': u'id', 'platform': u'platform', } def test_order_from_dict_flat(): item_0 = dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR')) item_1 = dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR')) discount_0 = dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR')) discount_1 = dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR')) order = dingguo.Order.from_dict({ 'articles': [item_0, item_1], 'customer_id': u'customer', 'discounts': [discount_0, discount_1], 'order_date': u'2016-05-08', 'order_id': u'id', 'platform': u'platform', }) assert order.items == [item_0, item_1] assert order.customer_id == u'customer' assert order.discounts == [discount_0, discount_1] assert order.order_date == datetime.date(2016, 5, 8) assert order.order_id == u'id' assert order.platform == u'platform' def test_order_from_dict_tree(): order = dingguo.Order.from_dict({ 'articles': [ { 'name': u'item 0', 'price_brutto': 1.0, 'price_brutto_currency': u'EUR', }, { 'name': u'item 1', 'price_brutto': 2.0, 'price_brutto_currency': u'EUR', }, ], 'customer_id': u'customer', 'discounts': [ { 'name': u'discount 0', 'value': 3.0, 'value_currency': u'EUR', }, { 'name': u'discount 1', 'value': 4.0, 'value_currency': u'EUR', }, ], 'order_date': u'2016-05-08', 'order_id': u'id', 'platform': u'platform', }) assert order.items == [ dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR')), dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR')), ] assert order.customer_id == u'customer' assert order.discounts == [ dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR')), dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR')), ] assert order.order_date == datetime.date(2016, 5, 8) assert order.order_id == u'id' assert order.platform == u'platform' def test_item_from_dict(): item = dingguo.Item.from_dict({ 'name': u'item', 'price_brutto': 1.0, 'price_brutto_currency': u'EUR', }) assert item.name == u'item' assert item.price_brutto == dingguo.Sum(1.0, u'EUR') def test_discount_from_dict(): discount = dingguo.Discount.from_dict({ 'name': u'discount', 'value': 1.0, 'value_currency': u'EUR', }) assert discount.name == u'discount' assert discount.amount == dingguo.Sum(1.0, u'EUR')