# -*- coding: utf-8 -*-
# Copyright (C) 2012-2016 by the Free Software Foundation, Inc.
#
# This file is part of Postorius.
#
# Postorius is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
# Postorius is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# Postorius. If not, see <http://www.gnu.org/licenses/>.
from django.test import TestCase
from postorius.forms import (ListNew, UserPreferences, DomainNew,
ListSubscribe, ChangeSubscriptionForm)
class UserPreferencesTest(TestCase):
def test_form_fields_valid(self):
form = UserPreferences({
'acknowledge_posts': 'True',
'hide_address': 'True',
'receive_list_copy': 'False',
'receive_own_postings': 'False',
})
self.assertTrue(form.is_valid())
class DomainNewTest(TestCase):
def test_form_fields_webhost(self):
form = DomainNew({
'mail_host': 'mailman.most-desirable.org',
'web_host': 'http://mailman.most-desirable.org',
'description': 'The Most Desirable organization',
'contact_address': 'contact@mailman.most-desirable.org',
})
self.assertTrue(form.is_valid())
def test_form_fields_webhost_invalid(self):
form = DomainNew({
'mail_host': 'mailman.most-desirable.org',
'web_host': 'most-desirable',
'description': 'The Most Desirable organization',
'contact_address': 'contact@mailman.most-desirable.org',
})
self.assertFalse(form.is_valid())
class ListSubscribeTest(TestCase):
def test_subscribe_works(self):
user_emails = ['someone@example.com']
form = ListSubscribe(user_emails,
{'email': 'someone@example.com',
'display_name': 'Someone'})
self.assertTrue(form.is_valid())
def test_subscribe_fails(self):
user_emails = ['someone@example.com']
form = ListSubscribe(user_emails,
{'email': 'notaemail',
'display_name': 'Someone'})
self.assertFalse(form.is_valid())
def test_subscribe_validates_email(self):
user_emails = ['something']
form = ListSubscribe(user_emails,
{'email': 'something',
'display_name': 'Someone'})
self.assertFalse(form.is_valid())
class ChangeSubscriptionTest(TestCase):
def test_subscription_changes_only_to_user_addresses(self):
user_emails = ['one@example.com', 'two@example.com']
form = ChangeSubscriptionForm(user_emails, {'email': 'abcd@d.com'})
self.assertFalse(form.is_valid())
def test_subscription_works(self):
user_emails = ['one@example.com', 'two@example.com']
form = ChangeSubscriptionForm(user_emails,
{'email': 'two@example.com'})
self.assertTrue(form.is_valid())
class ListNewTest(TestCase):
def test_form_fields_list(self):
form = ListNew({
'listname': 'xyz',
'mail_host': 'mailman.most-desirable.org',
'list_owner': 'contact@mailman.most-desirable.org',
'advertise': 'abcd',
'description': 'The Most Desirable organization',
})
self.assertTrue(form.is_valid)
def test_form_fields_list_invalid(self):
form = ListNew({
'listname': 'xy#z',
'mail_host': 'mailman.most-desirable.org',
'list_owner': 'mailman.most-desirable.org',
'advertise': 'abcd',
'description': 'The Most Desirable organization',
})
self.assertFalse(form.is_valid())