This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import datetime
|
||||
from django.test import TestCase
|
||||
from django.utils import timezone
|
||||
|
||||
from ..models import Participant, TrashedParticipant
|
||||
from .. import utils
|
||||
|
||||
from .generic import EventMixin
|
||||
|
||||
|
||||
class PurgeParticipantsTestCase(EventMixin, TestCase):
|
||||
def test_purging_participants_only_with_elapsed_purge_date(self):
|
||||
event = self.create_event_by_model()
|
||||
|
||||
test_dates = [
|
||||
timezone.now(),
|
||||
timezone.now() - datetime.timedelta(days=1),
|
||||
timezone.now() + datetime.timedelta(days=1),
|
||||
timezone.now() - datetime.timedelta(days=720),
|
||||
timezone.now() + datetime.timedelta(days=720),
|
||||
]
|
||||
|
||||
position = 0
|
||||
for date in test_dates:
|
||||
position += 1
|
||||
participant = Participant(
|
||||
event=event,
|
||||
personal_names='Walter',
|
||||
family_names='Bonatti',
|
||||
address='Street 1',
|
||||
postal_code='23032',
|
||||
city='Bormio',
|
||||
email_address='walter@farbemachtstark.de',
|
||||
phone_number='555 1',
|
||||
year_of_birth=1930,
|
||||
dav_number='1',
|
||||
position=position,
|
||||
purge_at=date,
|
||||
)
|
||||
participant.save()
|
||||
|
||||
self.assertEqual(Participant.objects.count(), len(test_dates))
|
||||
|
||||
with self.assertLogs('dav_events.utils', level='INFO') as cm:
|
||||
utils.purge_participants()
|
||||
|
||||
position = 0
|
||||
expected_messages = 0
|
||||
for date in test_dates:
|
||||
position += 1
|
||||
expected_purge = date <= timezone.now()
|
||||
if expected_purge:
|
||||
expected_messages += 1
|
||||
self.assertEqual(expected_purge, not Participant.objects.filter(position=position).exists())
|
||||
|
||||
self.assertEqual(len(cm.output), expected_messages)
|
||||
for i in range(expected_messages):
|
||||
self.assertStartsWith(cm.output[i], 'INFO:dav_events.utils:Purge participant \'')
|
||||
|
||||
def test_purging_trashed_participants_only_with_elapsed_purge_date(self):
|
||||
event = self.create_event_by_model()
|
||||
|
||||
test_dates = [
|
||||
timezone.now(),
|
||||
timezone.now() - datetime.timedelta(days=1),
|
||||
timezone.now() + datetime.timedelta(days=1),
|
||||
timezone.now() - datetime.timedelta(days=720),
|
||||
timezone.now() + datetime.timedelta(days=720),
|
||||
]
|
||||
|
||||
position = 0
|
||||
for date in test_dates:
|
||||
position += 1
|
||||
participant = TrashedParticipant(
|
||||
event=event,
|
||||
personal_names='Walter',
|
||||
family_names='Bonatti',
|
||||
address='Street 1',
|
||||
postal_code='23032',
|
||||
city='Bormio',
|
||||
email_address='walter@farbemachtstark.de',
|
||||
phone_number='555 1',
|
||||
year_of_birth=1930,
|
||||
dav_number='1',
|
||||
position=position,
|
||||
created_at=timezone.now(),
|
||||
purge_at=date,
|
||||
)
|
||||
participant.save()
|
||||
|
||||
self.assertEqual(TrashedParticipant.objects.count(), len(test_dates))
|
||||
|
||||
with self.assertLogs('dav_events.utils', level='INFO') as cm:
|
||||
utils.purge_participants()
|
||||
|
||||
position = 0
|
||||
expected_messages = 0
|
||||
for date in test_dates:
|
||||
position += 1
|
||||
expected_purge = date <= timezone.now()
|
||||
if expected_purge:
|
||||
expected_messages += 1
|
||||
self.assertEqual(expected_purge, not TrashedParticipant.objects.filter(position=position).exists())
|
||||
|
||||
self.assertEqual(len(cm.output), expected_messages)
|
||||
for i in range(expected_messages):
|
||||
self.assertStartsWith(cm.output[i], 'INFO:dav_events.utils:Purge participant from trash \'')
|
||||
Reference in New Issue
Block a user