Create change log entry on status updates

This commit is contained in:
2020-09-29 22:19:43 +02:00
parent 96d6dc72fb
commit 5237d81551
6 changed files with 102 additions and 56 deletions

View File

@@ -4,6 +4,7 @@ import datetime
import json
from django.test import TestCase
from ..models.eventchange import EventChange
from .generic import EventMixin
TEST_EVENT_DATA = {
@@ -21,12 +22,6 @@ TEST_EVENT_DATA = {
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)
@@ -44,19 +39,29 @@ class EventsTestCase(EventMixin, TestCase):
event.save()
changes = event.changes
self.assertEqual(changes.count(), 3)
self.assertEqual(changes.count(), 4)
subchanges = json.loads(changes.get(pk=1).content)
change = changes.get(pk=1)
self.assertEqual(change.operation, EventChange.RAISE_FLAG)
self.assertEqual(change.content, 'draft')
change = changes.get(pk=2)
self.assertEqual(change.operation, EventChange.UPDATE)
subchanges = json.loads(change.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.get(pk=2).content)
change = changes.get(pk=3)
self.assertEqual(change.operation, EventChange.UPDATE)
subchanges = json.loads(change.content)
self.assertEqual(len(subchanges), 1)
self.assertIn({'field': 'country', 'refer': 'DE', 'current': 'FR'}, subchanges)
subchanges = json.loads(changes.get(pk=3).content)
change = changes.get(pk=4)
self.assertEqual(change.operation, EventChange.UPDATE)
subchanges = json.loads(change.content)
self.assertEqual(len(subchanges), 2)
self.assertIn({'field': 'trainer_familyname', 'refer': 'Weißalles', 'current': 'Weißalles-Ömlaut'}, subchanges)
self.assertIn({'field': 'max_participants', 'refer': 0, 'current': 8}, subchanges)