Merge branch 'master' into aureplop/cof-tests_export

This commit is contained in:
Martin Pépin 2018-04-07 11:24:05 +02:00
commit ee33762845
31 changed files with 2537 additions and 58 deletions

View file

@ -9,6 +9,8 @@ from django.test import Client
from django.utils import timezone
from django.utils.functional import cached_property
import icalendar
User = get_user_model()
@ -97,6 +99,40 @@ class TestCaseMixin:
decoded = r.content.decode('utf-8')
return list(csv.reader(decoded.split('\n')[:-1]))
def _test_event_equal(self, event, exp):
for k, v_desc in exp.items():
if isinstance(v_desc, tuple):
v_getter = v_desc[0]
v = v_desc[1]
else:
v_getter = lambda v: v
v = v_desc
if v_getter(event[k.upper()]) != v:
return False
return True
def _find_event(self, ev, l):
for i, elt in enumerate(l):
if self._test_event_equal(ev, elt):
return elt, i
return False, -1
def assertCalEqual(self, ical_content, expected):
remaining = expected.copy()
unexpected = []
cal = icalendar.Calendar.from_ical(ical_content)
for ev in cal.walk('vevent'):
found, i_found = self._find_event(ev, remaining)
if found:
remaining.pop(i_found)
else:
unexpected.append(ev)
self.assertListEqual(unexpected, [])
self.assertListEqual(remaining, [])
class ViewTestCaseMixin(TestCaseMixin):
"""