test_.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. import datetime
  4. import dingguo
  5. import yaml
  6. import os
  7. def test_order_dict_repr():
  8. order = dingguo.Order(
  9. platform = u'platform',
  10. order_id = u'id',
  11. order_date = datetime.datetime(2016, 5, 8, 0, 18, 17),
  12. customer_id = u'customer',
  13. )
  14. item_0 = dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR'))
  15. order.items.append(item_0)
  16. item_1 = dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR'))
  17. order.items.append(item_1)
  18. discount_0 = dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR'))
  19. order.discounts.append(discount_0)
  20. discount_1 = dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR'))
  21. order.discounts.append(discount_1)
  22. assert order.dict_repr() == {
  23. 'articles': [item_0, item_1],
  24. 'customer_id': u'customer',
  25. 'discounts': [discount_0, discount_1],
  26. 'order_date': u'2016-05-08',
  27. 'order_id': u'id',
  28. 'platform': u'platform',
  29. }
  30. def test_order_from_dict_flat():
  31. item_0 = dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR'))
  32. item_1 = dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR'))
  33. discount_0 = dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR'))
  34. discount_1 = dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR'))
  35. order = dingguo.Order.from_dict({
  36. 'articles': [item_0, item_1],
  37. 'customer_id': u'customer',
  38. 'discounts': [discount_0, discount_1],
  39. 'order_date': u'2016-05-08',
  40. 'order_id': u'id',
  41. 'platform': u'platform',
  42. })
  43. assert order.items == [item_0, item_1]
  44. assert order.customer_id == u'customer'
  45. assert order.discounts == [discount_0, discount_1]
  46. assert order.order_date == datetime.date(2016, 5, 8)
  47. assert order.order_id == u'id'
  48. assert order.platform == u'platform'
  49. def test_order_from_dict_tree():
  50. order = dingguo.Order.from_dict({
  51. 'articles': [
  52. {
  53. 'name': u'item 0',
  54. 'price_brutto': 1.0,
  55. 'price_brutto_currency': u'EUR',
  56. },
  57. {
  58. 'name': u'item 1',
  59. 'price_brutto': 2.0,
  60. 'price_brutto_currency': u'EUR',
  61. },
  62. ],
  63. 'customer_id': u'customer',
  64. 'discounts': [
  65. {
  66. 'name': u'discount 0',
  67. 'value': 3.0,
  68. 'value_currency': u'EUR',
  69. },
  70. {
  71. 'name': u'discount 1',
  72. 'value': 4.0,
  73. 'value_currency': u'EUR',
  74. },
  75. ],
  76. 'order_date': u'2016-05-08',
  77. 'order_id': u'id',
  78. 'platform': u'platform',
  79. })
  80. assert order.items == [
  81. dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR')),
  82. dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR')),
  83. ]
  84. assert order.customer_id == u'customer'
  85. assert order.discounts == [
  86. dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR')),
  87. dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR')),
  88. ]
  89. assert order.order_date == datetime.date(2016, 5, 8)
  90. assert order.order_id == u'id'
  91. assert order.platform == u'platform'
  92. def test_item_from_dict():
  93. item = dingguo.Item.from_dict({
  94. 'name': u'item',
  95. 'price_brutto': 1.0,
  96. 'price_brutto_currency': u'EUR',
  97. })
  98. assert item.name == u'item'
  99. assert item.price_brutto == dingguo.Sum(1.0, u'EUR')
  100. def test_discount_from_dict():
  101. discount = dingguo.Discount.from_dict({
  102. 'name': u'discount',
  103. 'value': 1.0,
  104. 'value_currency': u'EUR',
  105. })
  106. assert discount.name == u'discount'
  107. assert discount.amount == dingguo.Sum(1.0, u'EUR')