prop_test.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import datetime
  2. import pytest
  3. from icalendar.prop import vCalAddress, vDDDLists, vDDDTypes, vInt, vRecur, vText
  4. from ics2vdir import _event_prop_equal
  5. @pytest.mark.parametrize(
  6. ("prop_a", "prop_b", "expected_result"),
  7. [
  8. (vText("CONFIRMED"), vText("CONFIRMED"), True),
  9. (vText("TENTATIVE"), vText("TENTATIVE"), True),
  10. (vText("CONFIRMED"), vText("TENTATIVE"), False),
  11. (vText("CONFIRMED"), vInt(0), False),
  12. (vInt(0), vInt(0), True),
  13. (vInt(0), vInt(21), False),
  14. (
  15. vCalAddress("mailto:someone@somewhere.com"),
  16. vCalAddress("mailto:someone@somewhere.com"),
  17. True,
  18. ),
  19. (
  20. vCalAddress("mailto:someone@somewhere.com"),
  21. vCalAddress("mailto:someelse@somewhere.com"),
  22. False,
  23. ),
  24. (vRecur(FREQ="WEEKLY", COUNT=21), vRecur(FREQ="WEEKLY", COUNT=21), True,),
  25. (vRecur(FREQ="WEEKLY", COUNT=21), vRecur(FREQ="WEEKLY", COUNT=42), False,),
  26. (
  27. vDDDTypes(
  28. datetime.datetime(2012, 7, 3, 16, 39, 2, tzinfo=datetime.timezone.utc)
  29. ),
  30. vDDDTypes(
  31. datetime.datetime(2012, 7, 3, 16, 39, 2, tzinfo=datetime.timezone.utc)
  32. ),
  33. True,
  34. ),
  35. (
  36. vDDDTypes(
  37. datetime.datetime(2012, 7, 3, 16, 39, 3, tzinfo=datetime.timezone.utc)
  38. ),
  39. vDDDTypes(
  40. datetime.datetime(2012, 7, 3, 16, 39, 2, tzinfo=datetime.timezone.utc)
  41. ),
  42. False,
  43. ),
  44. (
  45. vDDDLists(
  46. [datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc)]
  47. ),
  48. vDDDLists(
  49. [datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc)]
  50. ),
  51. True,
  52. ),
  53. (
  54. vDDDLists(
  55. [
  56. datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc),
  57. datetime.datetime(2020, 2, 5, 20, 5, tzinfo=datetime.timezone.utc),
  58. ]
  59. ),
  60. vDDDLists(
  61. [
  62. datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc),
  63. datetime.datetime(2020, 2, 5, 20, 5, tzinfo=datetime.timezone.utc),
  64. ]
  65. ),
  66. True,
  67. ),
  68. (
  69. vDDDLists(
  70. [
  71. datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc),
  72. datetime.datetime(2020, 2, 5, 20, 5, tzinfo=datetime.timezone.utc),
  73. ]
  74. ),
  75. vDDDLists(
  76. [
  77. datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc),
  78. datetime.datetime(2020, 2, 5, 20, 7, tzinfo=datetime.timezone.utc),
  79. ]
  80. ),
  81. False,
  82. ),
  83. (
  84. vDDDLists(
  85. [
  86. datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc),
  87. datetime.datetime(2020, 2, 5, 20, 5, tzinfo=datetime.timezone.utc),
  88. ]
  89. ),
  90. vDDDLists(
  91. [
  92. datetime.datetime(2020, 2, 5, 20, 0, tzinfo=datetime.timezone.utc),
  93. datetime.datetime(2020, 2, 5, 20, 5, tzinfo=datetime.timezone.utc),
  94. datetime.datetime(2020, 2, 5, 20, 7, tzinfo=datetime.timezone.utc),
  95. ]
  96. ),
  97. False,
  98. ),
  99. ],
  100. )
  101. def test__event_prop_equal(prop_a, prop_b, expected_result):
  102. assert _event_prop_equal(prop_a, prop_b) == expected_result