From 09bfbeedc4ac65ba09be0326e27b3c45f33e8bab Mon Sep 17 00:00:00 2001 From: heinzel Date: Tue, 29 Sep 2020 19:02:55 +0200 Subject: [PATCH] Satisfy python2 tests --- dav_events/models/event.py | 16 +++++++++++++--- dav_events/models/eventchange.py | 1 + dav_events/tests/test_models.py | 22 +++++++++++++++------- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/dav_events/models/event.py b/dav_events/models/event.py index 9f9a1ef..b3ae952 100644 --- a/dav_events/models/event.py +++ b/dav_events/models/event.py @@ -15,7 +15,7 @@ from django.db import models from django.template.loader import get_template from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import get_language, ugettext_lazy as _ -from django_countries.fields import CountryField +from django_countries.fields import Country, CountryField from .. import choices from .. import config @@ -326,12 +326,22 @@ class Event(models.Model): for field in fields: field_name = field.name from_value = getattr(event, field_name) + if (isinstance(from_value, datetime.datetime) or + isinstance(from_value, datetime.date) or + isinstance(from_value, datetime.time) or + isinstance(from_value, Country)): + from_value = str(from_value) to_value = getattr(self, field_name) + if (isinstance(to_value, datetime.datetime) or + isinstance(to_value, datetime.date) or + isinstance(to_value, datetime.time) or + isinstance(to_value, Country)): + to_value = str(to_value) if from_value != to_value: change = { 'field': field_name, - 'refer': str(from_value), - 'current': str(to_value), + 'refer': from_value, + 'current': to_value, } changes.append(change) diff_text = json.dumps(changes) diff --git a/dav_events/models/eventchange.py b/dav_events/models/eventchange.py index 8aa5745..0d0f14d 100644 --- a/dav_events/models/eventchange.py +++ b/dav_events/models/eventchange.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf import settings from django.db import models diff --git a/dav_events/tests/test_models.py b/dav_events/tests/test_models.py index 0ca1c1c..9899fdf 100644 --- a/dav_events/tests/test_models.py +++ b/dav_events/tests/test_models.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from __future__ import unicode_literals import datetime import json @@ -36,19 +37,26 @@ class EventsTestCase(EventMixin, TestCase): event.save() event.country = 'FR' + event.save() + + event.trainer_familyname += '-Ömlaut' event.max_participants = 8 event.save() changes = event.changes - self.assertEqual(changes.count(), 2) + self.assertEqual(changes.count(), 3) - subchanges = json.loads(changes.first().content) + subchanges = json.loads(changes.get(pk=1).content) self.assertEqual(len(subchanges), 3) - self.assertIn({'field': 'alt_first_day', 'refer': 'None', 'current': '2019-03-02'}, subchanges) + 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) + self.assertIn({'field': 'ski_lift', 'refer': False, 'current': True}, subchanges) - subchanges = json.loads(changes.last().content) - self.assertEqual(len(subchanges), 2) + subchanges = json.loads(changes.get(pk=2).content) + self.assertEqual(len(subchanges), 1) self.assertIn({'field': 'country', 'refer': 'DE', 'current': 'FR'}, subchanges) - self.assertIn({'field': 'max_participants', 'refer': '0', 'current': '8'}, subchanges) + + subchanges = json.loads(changes.get(pk=3).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)