Files
heinzel d8807a6bbc
Run tests / Execute tox to run the test suite (push) Successful in 4m0s
dav_events: improved tests
2026-06-01 15:57:20 +02:00

110 lines
3.8 KiB
Python

# -*- 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 \'')