# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.apps import apps from django.core.exceptions import ValidationError from django.test import TestCase from dav_events.tests.generic import EventMixin from .generic import RegistrationMixin class RegistrationTestCase(EventMixin, RegistrationMixin, TestCase): def setUp(self): super(RegistrationTestCase, self).setUp() app_config = apps.get_app_config('dav_events') app_config.settings.enable_email_on_status_update = False self.event = self.create_event_by_model() self.submit_event(self.event) self.accept_event(self.event) self.confirm_publication_event(self.event) def test_create_members(self): event = self.event registration_data = { 'event': event, 'personal_names': 'Participant', 'family_names': 'One', 'address': 'Here', 'postal_code': '1', 'city': 'Karlsruhe', 'phone_number': '12', 'email_address': 'participant@localhost', } dav_numbers = ['0', '12345', '131/00/12345'] for n in dav_numbers: d = registration_data d['dav_number'] = n self.create_registration(d) def test_create_members_without_number(self): event = self.event registration_data = { 'event': event, 'personal_names': 'Participant', 'family_names': 'One', 'address': 'Here', 'postal_code': '1', 'city': 'Karlsruhe', 'phone_number': '12', 'email_address': 'participant@localhost', } with self.assertRaisesMessage(ValidationError, 'Wenn du DAV Mitglied bist, brauchen wir deine Mitgliedsnummer.'): self.create_registration(registration_data) registration_data['dav_number'] = '' with self.assertRaisesMessage(ValidationError, 'Wenn du DAV Mitglied bist, brauchen wir deine Mitgliedsnummer.'): self.create_registration(registration_data) def test_create_members_with_invalid_numbers(self): event = self.event registration_data = { 'event': event, 'personal_names': 'Participant', 'family_names': 'One', 'address': 'Here', 'postal_code': '1', 'city': 'Karlsruhe', 'phone_number': '12', 'email_address': 'participant@localhost', } dav_numbers = ['Nein', '-', '13100123456789'] for n in dav_numbers: d = registration_data d['dav_number'] = n with self.assertRaises(ValidationError) as context: self.create_registration(d) self.assertEqual(context.exception.messages, ['Ungültiges Format.']) def test_create_non_member(self): event = self.event registration_data = { 'event': event, 'personal_names': 'Participant', 'family_names': 'One', 'address': 'Here', 'postal_code': '1', 'city': 'Karlsruhe', 'phone_number': '12', 'email_address': 'participant@localhost', 'dav_member': False, } self.create_registration(registration_data)