1
0

test_.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. import datetime
  4. import dingguo
  5. import yaml
  6. import os
  7. project_root_path = os.path.realpath(os.path.join(__file__, '..', '..'))
  8. test_data_path = os.path.join(project_root_path, 'tests', 'data')
  9. def test_order_dict_repr():
  10. order = dingguo.Order(
  11. platform = u'platform',
  12. order_id = u'id',
  13. order_date = datetime.datetime(2016, 5, 8, 0, 18, 17),
  14. customer_id = u'customer',
  15. )
  16. item_0 = dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR'))
  17. order.items.append(item_0)
  18. item_1 = dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR'))
  19. order.items.append(item_1)
  20. discount_0 = dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR'))
  21. order.discounts.append(discount_0)
  22. discount_1 = dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR'))
  23. order.discounts.append(discount_1)
  24. assert order.dict_repr() == {
  25. 'articles': [item_0, item_1],
  26. 'customer_id': u'customer',
  27. 'discounts': [discount_0, discount_1],
  28. 'order_date': u'2016-05-08',
  29. 'order_id': u'id',
  30. 'platform': u'platform',
  31. }
  32. def test_order_from_dict_flat():
  33. item_0 = dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR'))
  34. item_1 = dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR'))
  35. discount_0 = dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR'))
  36. discount_1 = dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR'))
  37. order = dingguo.Order.from_dict({
  38. 'articles': [item_0, item_1],
  39. 'customer_id': u'customer',
  40. 'discounts': [discount_0, discount_1],
  41. 'order_date': u'2016-05-08',
  42. 'order_id': u'id',
  43. 'platform': u'platform',
  44. })
  45. assert order.items == [item_0, item_1]
  46. assert order.customer_id == u'customer'
  47. assert order.discounts == [discount_0, discount_1]
  48. assert order.order_date == datetime.date(2016, 5, 8)
  49. assert order.order_id == u'id'
  50. assert order.platform == u'platform'
  51. def test_order_from_dict_tree():
  52. order = dingguo.Order.from_dict({
  53. 'articles': [
  54. {
  55. 'name': u'item 0',
  56. 'price_brutto': 1.0,
  57. 'price_brutto_currency': u'EUR',
  58. },
  59. {
  60. 'name': u'item 1',
  61. 'price_brutto': 2.0,
  62. 'price_brutto_currency': u'EUR',
  63. },
  64. ],
  65. 'customer_id': u'customer',
  66. 'discounts': [
  67. {
  68. 'name': u'discount 0',
  69. 'value': 3.0,
  70. 'value_currency': u'EUR',
  71. },
  72. {
  73. 'name': u'discount 1',
  74. 'value': 4.0,
  75. 'value_currency': u'EUR',
  76. },
  77. ],
  78. 'order_date': u'2016-05-08',
  79. 'order_id': u'id',
  80. 'platform': u'platform',
  81. })
  82. assert order.items == [
  83. dingguo.Item(name = u'item 0', price_brutto = dingguo.Sum(1.0, u'EUR')),
  84. dingguo.Item(name = u'item 1', price_brutto = dingguo.Sum(2.0, u'EUR')),
  85. ]
  86. assert order.customer_id == u'customer'
  87. assert order.discounts == [
  88. dingguo.Discount(name = u'discount 0', amount = dingguo.Sum(3.0, u'EUR')),
  89. dingguo.Discount(name = u'discount 1', amount = dingguo.Sum(4.0, u'EUR')),
  90. ]
  91. assert order.order_date == datetime.date(2016, 5, 8)
  92. assert order.order_id == u'id'
  93. assert order.platform == u'platform'
  94. def test_figure_eq():
  95. assert dingguo.Figure(1, u'mm') == dingguo.Figure(1, u'mm')
  96. def test_figure_eq_inverted():
  97. assert not dingguo.Figure(1, u'mm') == dingguo.Figure(2, u'mm')
  98. def test_figure_ne():
  99. assert dingguo.Figure(1, u'mm') != dingguo.Figure(2, u'mm')
  100. def test_figure_ne_inverted():
  101. assert not dingguo.Figure(1, u'mm') != dingguo.Figure(1, u'mm')
  102. def test_item_eq():
  103. item_a = dingguo.Item(
  104. name = u'item',
  105. price_brutto = dingguo.Sum(1.0, u'EUR'),
  106. )
  107. item_b = dingguo.Item(
  108. name = u'item',
  109. price_brutto = dingguo.Sum(1.0, u'EUR'),
  110. )
  111. assert item_a == item_b
  112. def test_item_eq_inverted():
  113. item_a = dingguo.Item(
  114. name = u'item',
  115. price_brutto = dingguo.Sum(1.0, u'EUR'),
  116. )
  117. item_b = dingguo.Item(
  118. name = u'item',
  119. price_brutto = dingguo.Sum(2.0, u'EUR'),
  120. )
  121. assert not item_a == item_b
  122. def test_item_ne():
  123. item_a = dingguo.Item(
  124. name = u'item',
  125. price_brutto = dingguo.Sum(1.0, u'EUR'),
  126. )
  127. item_b = dingguo.Item(
  128. name = u'item',
  129. price_brutto = dingguo.Sum(2.0, u'EUR'),
  130. )
  131. assert item_a != item_b
  132. def test_item_ne_inverted():
  133. item_a = dingguo.Item(
  134. name = u'item',
  135. price_brutto = dingguo.Sum(1.0, u'EUR'),
  136. )
  137. item_b = dingguo.Item(
  138. name = u'item',
  139. price_brutto = dingguo.Sum(1.0, u'EUR'),
  140. )
  141. assert not item_a != item_b
  142. def test_discount_eq():
  143. discount_a = dingguo.Discount(
  144. name = u'discount',
  145. amount = dingguo.Sum(1.0, u'EUR'),
  146. )
  147. discount_b = dingguo.Discount(
  148. name = u'discount',
  149. amount = dingguo.Sum(1.0, u'EUR'),
  150. )
  151. assert discount_a == discount_b
  152. def test_discount_eq_inverted():
  153. discount_a = dingguo.Discount(
  154. name = u'discount',
  155. amount = dingguo.Sum(1.0, u'EUR'),
  156. )
  157. discount_b = dingguo.Discount(
  158. name = u'discount',
  159. amount = dingguo.Sum(2.0, u'EUR'),
  160. )
  161. assert not discount_a == discount_b
  162. def test_discount_ne():
  163. discount_a = dingguo.Discount(
  164. name = u'discount',
  165. amount = dingguo.Sum(1.0, u'EUR'),
  166. )
  167. discount_b = dingguo.Discount(
  168. name = u'discount',
  169. amount = dingguo.Sum(2.0, u'EUR'),
  170. )
  171. assert discount_a != discount_b
  172. def test_discount_ne_inverted():
  173. discount_a = dingguo.Discount(
  174. name = u'discount',
  175. amount = dingguo.Sum(1.0, u'EUR'),
  176. )
  177. discount_b = dingguo.Discount(
  178. name = u'discount',
  179. amount = dingguo.Sum(1.0, u'EUR'),
  180. )
  181. assert not discount_a != discount_b
  182. def test_item_from_dict():
  183. item = dingguo.Item.from_dict({
  184. 'name': u'item',
  185. 'price_brutto': 1.0,
  186. 'price_brutto_currency': u'EUR',
  187. })
  188. assert item.name == u'item'
  189. assert item.price_brutto == dingguo.Sum(1.0, u'EUR')
  190. def test_discount_from_dict():
  191. discount = dingguo.Discount.from_dict({
  192. 'name': u'discount',
  193. 'value': 1.0,
  194. 'value_currency': u'EUR',
  195. })
  196. assert discount.name == u'discount'
  197. assert discount.amount == dingguo.Sum(1.0, u'EUR')