Create change log entry on status updates
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user