test_comparison.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. import datetime
  4. import dingguo
  5. import yaml
  6. import os
  7. def get_item_a():
  8. return dingguo.Item(
  9. name = u'item',
  10. price_brutto = dingguo.Sum(1.0, u'EUR'),
  11. )
  12. def get_item_b():
  13. return dingguo.Item(
  14. name = u'item',
  15. price_brutto = dingguo.Sum(2.0, u'EUR'),
  16. )
  17. def get_discount_a():
  18. return dingguo.Discount(
  19. name = u'discount',
  20. amount = dingguo.Sum(1.0, u'EUR'),
  21. )
  22. def get_discount_b():
  23. return dingguo.Discount(
  24. name = u'discount',
  25. amount = dingguo.Sum(2.0, u'EUR'),
  26. )
  27. def get_order_a(items = True):
  28. order = dingguo.Order(
  29. platform = u'platform',
  30. order_id = u'id',
  31. order_date = datetime.datetime(2016, 5, 8, 0, 18, 17),
  32. customer_id = u'customer',
  33. )
  34. if items:
  35. order.items.append(get_item_a())
  36. order.items.append(get_item_b())
  37. order.discounts.append(get_discount_a())
  38. order.discounts.append(get_discount_b())
  39. return order
  40. def get_order_b():
  41. order = dingguo.Order(
  42. platform = u'platform',
  43. order_id = u'id',
  44. order_date = datetime.datetime(2016, 5, 8, 0, 18, 17),
  45. )
  46. order.items.append(get_item_a())
  47. order.items.append(get_item_b())
  48. order.discounts.append(get_discount_a())
  49. order.discounts.append(get_discount_b())
  50. return order
  51. def get_order_c():
  52. order = dingguo.Order(
  53. platform = u'platform',
  54. order_id = u'id',
  55. order_date = datetime.datetime(2016, 5, 8, 0, 18, 17),
  56. )
  57. order.items.append(get_item_a())
  58. order.items.append(get_item_b())
  59. order.items.append(get_item_b())
  60. order.discounts.append(get_discount_a())
  61. order.discounts.append(get_discount_b())
  62. return order
  63. def get_person_a():
  64. return dingguo.Person(
  65. first_name = u'Fabian Peter',
  66. last_name = u'Hammerle',
  67. )
  68. def get_person_b():
  69. return dingguo.Person(
  70. first_name = u'名字',
  71. last_name = u'贵姓',
  72. )
  73. @pytest.mark.parametrize('a,b', [
  74. [dingguo.Figure(1, u'mm'), dingguo.Figure(1, u'mm')],
  75. [get_item_a(), get_item_a()],
  76. [get_item_b(), get_item_b()],
  77. [get_person_a(), get_person_a()],
  78. [get_person_b(), get_person_b()],
  79. [get_discount_a(), get_discount_a()],
  80. [get_discount_b(), get_discount_b()],
  81. [get_order_a(), get_order_a()],
  82. [get_order_b(), get_order_b()],
  83. [get_order_c(), get_order_c()],
  84. ])
  85. def test_eq(a, b):
  86. assert a == b
  87. assert b == a
  88. assert not a != b
  89. assert not b != a
  90. @pytest.mark.parametrize('a,b', [
  91. [dingguo.Figure(1, u'mm'), dingguo.Figure(2, u'mm')],
  92. [get_item_a(), get_item_b()],
  93. [get_person_a(), get_person_b()],
  94. [get_discount_a(), get_discount_b()],
  95. [get_order_a(), get_order_b()],
  96. [get_order_a(), get_order_a(items = False)],
  97. [get_order_b(), get_order_c()],
  98. [get_order_a(), get_order_c()],
  99. ])
  100. def test_neq(a, b):
  101. assert a != b
  102. assert b != a
  103. assert not a == b
  104. assert not b == a
  105. def test_order_ne_items_reversed():
  106. order = get_order_a()
  107. order.items = order.items[::-1]
  108. assert get_order_a() != order