event_test.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import icalendar.cal
  2. import pytest
  3. import ics2vdir
  4. @pytest.mark.parametrize(
  5. ("event_a_ical", "event_b_ical", "expected_result"),
  6. (
  7. [
  8. (
  9. """BEGIN:VEVENT
  10. SUMMARY:party
  11. DTSTART:20201024T100000Z
  12. DTEND:20201026T120000Z
  13. DTSTAMP:20200205T160640Z
  14. UID:123456789@google.com
  15. SEQUENCE:0
  16. CREATED:20191231T103841Z
  17. DESCRIPTION:
  18. LAST-MODIFIED:20191231T103841Z
  19. LOCATION:
  20. STATUS:CONFIRMED
  21. TRANSP:OPAQUE
  22. END:VEVENT
  23. """,
  24. """BEGIN:VEVENT
  25. SUMMARY:party
  26. DTSTART:20201024T100000Z
  27. DTEND:20201026T120000Z
  28. DTSTAMP:20200205T160640Z
  29. UID:123456789@google.com
  30. SEQUENCE:0
  31. CREATED:20191231T103841Z
  32. DESCRIPTION:
  33. LAST-MODIFIED:20191231T103841Z
  34. LOCATION:
  35. STATUS:CONFIRMED
  36. TRANSP:OPAQUE
  37. END:VEVENT
  38. """,
  39. True,
  40. ),
  41. (
  42. """BEGIN:VEVENT
  43. SUMMARY:party
  44. DTSTART:20201024T100000Z
  45. DTEND:20201026T120000Z
  46. DTSTAMP:20200205T160640Z
  47. UID:123456789@google.com
  48. SEQUENCE:0
  49. CREATED:20191231T103841Z
  50. DESCRIPTION:
  51. LAST-MODIFIED:20191231T103841Z
  52. LOCATION:
  53. STATUS:CONFIRMED
  54. TRANSP:OPAQUE
  55. END:VEVENT
  56. """,
  57. """BEGIN:VEVENT
  58. SUMMARY:party
  59. DTSTART:20201024T100000Z
  60. DTEND:20201026T120000Z
  61. DTSTAMP:20200205T160640Z
  62. UID:123456789@google.com
  63. SEQUENCE:0
  64. CREATED:20191231T103841Z
  65. DESCRIPTION:
  66. LAST-MODIFIED:20191231T103841Z
  67. STATUS:CONFIRMED
  68. TRANSP:OPAQUE
  69. END:VEVENT
  70. """,
  71. False,
  72. ),
  73. (
  74. """BEGIN:VEVENT
  75. SUMMARY:party
  76. DTSTART:20201024T100000Z
  77. DTEND:20201026T120000Z
  78. DTSTAMP:20200205T160640Z
  79. UID:123456789@google.com
  80. SEQUENCE:0
  81. CREATED:20191231T103841Z
  82. LAST-MODIFIED:20191231T103841Z
  83. END:VEVENT
  84. """,
  85. """BEGIN:VEVENT
  86. SUMMARY:party
  87. DTSTART:20201024T100000Z
  88. DTEND:20201026T120000Z
  89. DTSTAMP:20200205T160640Z
  90. UID:123456789@google.com
  91. SEQUENCE:1
  92. CREATED:20191231T103841Z
  93. LAST-MODIFIED:20191231T103841Z
  94. END:VEVENT
  95. """,
  96. False,
  97. ),
  98. (
  99. """BEGIN:VEVENT
  100. SUMMARY:party
  101. DTSTART:20201024T100000Z
  102. DTEND:20201026T120000Z
  103. DTSTAMP:20200205T160640Z
  104. UID:123456789@google.com
  105. SEQUENCE:0
  106. CREATED:20191231T103841Z
  107. LAST-MODIFIED:20191231T103841Z
  108. END:VEVENT
  109. """,
  110. # ignoring DTSTAMP
  111. """BEGIN:VEVENT
  112. SUMMARY:party
  113. DTSTART:20201024T100000Z
  114. DTEND:20201026T120000Z
  115. DTSTAMP:20200205T200640Z
  116. UID:123456789@google.com
  117. SEQUENCE:0
  118. CREATED:20191231T103841Z
  119. LAST-MODIFIED:20191231T103841Z
  120. END:VEVENT
  121. """,
  122. True,
  123. ),
  124. ]
  125. ),
  126. )
  127. def test__events_equal(event_a_ical, event_b_ical, expected_result):
  128. event_a = icalendar.cal.Event.from_ical(event_a_ical)
  129. event_b = icalendar.cal.Event.from_ical(event_b_ical)
  130. # pylint: disable=protected-access
  131. assert ics2vdir._events_equal(event_a, event_b) == expected_result