Files
django-dav-events/dav_events/tests/test_models.py

55 lines
1.7 KiB
Python

from __future__ import unicode_literals
import datetime
import json
from django.test import TestCase
from .generic import EventMixin
TEST_EVENT_DATA = {
'title': 'Täst',
'description': 'Teßt',
'mode': 'joint',
'sport': 'W',
'level': 'beginner',
'first_day': datetime.date(2019, 3, 1),
'country': 'DE',
'trainer_firstname': 'Übungsleiter',
'trainer_familyname': 'Weißalles',
'trainer_email': 'trainer@localhost',
}
class EventsTestCase(EventMixin, TestCase):
def test_empty_changelog(self):
data = TEST_EVENT_DATA
event = self.create_event_by_model(data)
event.sport = 'M'
self.assertFalse(event.changes.exists())
def test_changelog(self):
data = TEST_EVENT_DATA
event = self.create_event_by_model(data)
event.alt_first_day = event.first_day + datetime.timedelta(1)
event.sport = 'M'
event.ski_lift = True
event.save()
event.country = 'FR'
event.max_participants = 8
event.save()
changes = event.changes
self.assertEqual(changes.count(), 2)
subchanges = json.loads(changes.first().content)
self.assertEqual(len(subchanges), 3)
self.assertIn({'field': 'alt_first_day', 'refer': 'None', 'current': '2019-03-02'}, subchanges)
self.assertIn({'field': 'sport', 'refer': 'W', 'current': 'M'}, subchanges)
self.assertIn({'field': 'ski_lift', 'refer': 'False', 'current': 'True'}, subchanges)
subchanges = json.loads(changes.last().content)
self.assertEqual(len(subchanges), 2)
self.assertIn({'field': 'country', 'refer': 'DE', 'current': 'FR'}, subchanges)
self.assertIn({'field': 'max_participants', 'refer': '0', 'current': '8'}, subchanges)