From dda6e276055bc6f756616c0ebaf7766303efeec4 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sun, 15 Nov 2015 16:01:49 +0100 Subject: [PATCH] Update tests. see #787 --- modoboa/admin/tests/account.py | 20 +++++---- modoboa/admin/tests/alias.py | 6 ++- modoboa/admin/tests/domain.py | 6 ++- modoboa/admin/tests/domain_alias.py | 8 ++-- modoboa/admin/tests/export.py | 10 +++-- modoboa/admin/tests/import_.py | 8 ++-- modoboa/admin/tests/password_schemes.py | 9 +++- .../core/commands/templates/settings.py.tpl | 4 ++ modoboa/core/tests.py | 8 ++-- modoboa/lib/tests.py | 12 ++++-- modoboa/limits/tests.py | 41 ++++++++++++------- modoboa/relaydomains/tests.py | 24 +++++++---- 12 files changed, 103 insertions(+), 53 deletions(-) diff --git a/modoboa/admin/tests/account.py b/modoboa/admin/tests/account.py index 1b82547e7..24397ba04 100644 --- a/modoboa/admin/tests/account.py +++ b/modoboa/admin/tests/account.py @@ -9,8 +9,10 @@ from .. import models class AccountTestCase(ModoTestCase): - def setUp(self): - super(AccountTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(AccountTestCase, cls).setUpTestData() factories.populate_database() def test_crud(self): @@ -115,13 +117,15 @@ class AccountTestCase(ModoTestCase): class PermissionsTestCase(ModoTestCase): - def setUp(self): - super(PermissionsTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(PermissionsTestCase, cls).setUpTestData() factories.populate_database() - self.user = User.objects.get(username='user@test.com') - self.values = dict( - username=self.user.username, role="DomainAdmins", - is_active=self.user.is_active, email="user@test.com", + cls.user = User.objects.get(username='user@test.com') + cls.values = dict( + username=cls.user.username, role="DomainAdmins", + is_active=cls.user.is_active, email="user@test.com", quota_act=True ) diff --git a/modoboa/admin/tests/alias.py b/modoboa/admin/tests/alias.py index d6aab928f..5e5636dfb 100644 --- a/modoboa/admin/tests/alias.py +++ b/modoboa/admin/tests/alias.py @@ -13,8 +13,10 @@ from ..models import Alias, AliasRecipient class AliasTestCase(ModoTestCase): - def setUp(self): - super(AliasTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(AliasTestCase, cls).setUpTestData() factories.populate_database() def test_alias(self): diff --git a/modoboa/admin/tests/domain.py b/modoboa/admin/tests/domain.py index d175e61ba..bc909015f 100644 --- a/modoboa/admin/tests/domain.py +++ b/modoboa/admin/tests/domain.py @@ -16,8 +16,10 @@ class DomainTestCase(ModoTestCase): """Test case for Domain.""" - def setUp(self): - super(DomainTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(DomainTestCase, cls).setUpTestData() factories.populate_database() def test_create(self): diff --git a/modoboa/admin/tests/domain_alias.py b/modoboa/admin/tests/domain_alias.py index f99fa32c8..38c4d5ef5 100644 --- a/modoboa/admin/tests/domain_alias.py +++ b/modoboa/admin/tests/domain_alias.py @@ -8,10 +8,12 @@ from ..models import Domain, DomainAlias, Alias class DomainAliasTestCase(ModoTestCase): - def setUp(self): - super(DomainAliasTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(DomainAliasTestCase, cls).setUpTestData() factories.populate_database() - self.dom = Domain.objects.get(name='test.com') + cls.dom = Domain.objects.get(name='test.com') def test_model(self): dom = Domain.objects.get(name="test.com") diff --git a/modoboa/admin/tests/export.py b/modoboa/admin/tests/export.py index f6d35d521..65801db61 100644 --- a/modoboa/admin/tests/export.py +++ b/modoboa/admin/tests/export.py @@ -11,14 +11,16 @@ class ExportTestCase(ModoTestCase): """Test case for export operations.""" - def setUp(self): - super(ExportTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(ExportTestCase, cls).setUpTestData() factories.populate_database() def __export_identities(self, idtfilter="", grpfilter=""): self.clt.get( - reverse("admin:_identity_list") - + "?grpfilter=%s&idtfilter=%s" % (grpfilter, idtfilter) + reverse("admin:_identity_list") + + "?grpfilter=%s&idtfilter=%s" % (grpfilter, idtfilter) ) return self.clt.post( reverse("admin:identity_export"), diff --git a/modoboa/admin/tests/import_.py b/modoboa/admin/tests/import_.py index efbb43650..5dacc52f1 100644 --- a/modoboa/admin/tests/import_.py +++ b/modoboa/admin/tests/import_.py @@ -11,8 +11,10 @@ from ..models import Domain, Alias, DomainAlias class ImportTestCase(ModoTestCase): - def setUp(self): - super(ImportTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(ImportTestCase, cls).setUpTestData() factories.populate_database() def test_domains_import(self): @@ -180,7 +182,7 @@ account; user1@test.com; toto; User; One; True; SimpleUsers; user1@test.com; 20 f = ContentFile(b""" account; user1@test.com; toto; User; One; True; SimpleUsers; user1@test.com """, name="identities.csv") - resp = self.clt.post( + self.clt.post( reverse("admin:identity_import"), {"sourcefile": f, "crypt_password": True} ) diff --git a/modoboa/admin/tests/password_schemes.py b/modoboa/admin/tests/password_schemes.py index 605d90c64..5d3fc5a71 100644 --- a/modoboa/admin/tests/password_schemes.py +++ b/modoboa/admin/tests/password_schemes.py @@ -9,11 +9,16 @@ from .. import factories class PasswordSchemesTestCase(ModoTestCase): - fixtures = ['initial_users.json'] + + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(PasswordSchemesTestCase, cls).setUpTestData() + factories.populate_database() def setUp(self): + """Test initialization.""" super(PasswordSchemesTestCase, self).setUp() - factories.populate_database() load_core_settings() def _create_account(self): diff --git a/modoboa/core/commands/templates/settings.py.tpl b/modoboa/core/commands/templates/settings.py.tpl index f5ffa471b..8a3e60f91 100644 --- a/modoboa/core/commands/templates/settings.py.tpl +++ b/modoboa/core/commands/templates/settings.py.tpl @@ -34,6 +34,10 @@ ALLOWED_HOSTS = [ SITE_ID = 1 +# Security settings + +X_FRAME_OPTIONS = "DENY" + # Application definition INSTALLED_APPS = ( diff --git a/modoboa/core/tests.py b/modoboa/core/tests.py index aaeca7d03..af5794290 100644 --- a/modoboa/core/tests.py +++ b/modoboa/core/tests.py @@ -8,9 +8,11 @@ from . import factories class ProfileTestCase(ModoTestCase): - def setUp(self): - super(ProfileTestCase, self).setUp() - self.account = factories.UserFactory( + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(ProfileTestCase, cls).setUpTestData() + cls.account = factories.UserFactory( username="user@test.com", groups=('SimpleUsers',) ) diff --git a/modoboa/lib/tests.py b/modoboa/lib/tests.py index f8a410c31..39ba29042 100644 --- a/modoboa/lib/tests.py +++ b/modoboa/lib/tests.py @@ -15,8 +15,12 @@ class ModoTestCase(TestCase): """All test cases must inherit from this one.""" - def setUp(self, username="admin", password="password"): + @classmethod + def setUpTestData(cls): + """Create a default user.""" management.call_command("load_initial_data") + + def setUp(self, username="admin", password="password"): self.clt = Client() self.assertEqual( self.clt.login(username=username, password=password), True) @@ -66,11 +70,13 @@ class ParameterTestCase(TestCase): """Simple test cases for ``modoboa.lib.parameters`` module. """ - def setUp(self): + @classmethod + def setUpTestData(cls): + super(ParameterTestCase, cls).setUpTestData() from modoboa.core.models import User parameters.register(TestParams, "Test") parameters.register(TestUserParams, "TestUser") - self.user = User.objects.create(username="tester") + cls.user = User.objects.create(username="tester") def test_register_form(self): self.assertIn("test", parameters._params['A']) diff --git a/modoboa/limits/tests.py b/modoboa/limits/tests.py index f797c2048..e4f4fec2d 100644 --- a/modoboa/limits/tests.py +++ b/modoboa/limits/tests.py @@ -14,8 +14,10 @@ from .models import LimitTemplates class PermissionsTestCase(ModoTestCase): - def setUp(self): - super(PermissionsTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(PermissionsTestCase, cls).setUpTestData() populate_database() def test_domainadmin_deletes_reseller(self): @@ -41,13 +43,10 @@ class PermissionsTestCase(ModoTestCase): class ResourceTestCase(ModoTestCase): - def setUp(self): - """Custom setUp method. - - The 'limits' is manually loaded to ensure extra parameters - provided by 'postfix_relay_domains' are properly received. - """ - super(ResourceTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Custom setUpTestData method.""" + super(ResourceTestCase, cls).setUpTestData() for tpl in LimitTemplates().templates: parameters.save_admin( "DEFLT_{0}".format(tpl[0].upper()), 2, @@ -115,11 +114,17 @@ class ResourceTestCase(ModoTestCase): class DomainAdminTestCase(ResourceTestCase): + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(DomainAdminTestCase, cls).setUpTestData() + cls.user = User.objects.get(username='admin@test.com') + cls.user.limitspool.set_maxvalue('mailboxes_limit', 2) + cls.user.limitspool.set_maxvalue('mailbox_aliases_limit', 2) + def setUp(self): + """Test initialization.""" super(DomainAdminTestCase, self).setUp() - self.user = User.objects.get(username='admin@test.com') - self.user.limitspool.set_maxvalue('mailboxes_limit', 2) - self.user.limitspool.set_maxvalue('mailbox_aliases_limit', 2) self.clt.logout() self.clt.login(username='admin@test.com', password='toto') @@ -168,11 +173,17 @@ class DomainAdminTestCase(ResourceTestCase): class ResellerTestCase(ResourceTestCase): - def setUp(self): - super(ResellerTestCase, self).setUp() - self.user = UserFactory.create( + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(ResellerTestCase, cls).setUpTestData() + cls.user = UserFactory.create( username='reseller', groups=('Resellers',) ) + + def setUp(self): + """Test initialization.""" + super(ResellerTestCase, self).setUp() self.clt.logout() self.clt.login(username='reseller', password='toto') diff --git a/modoboa/relaydomains/tests.py b/modoboa/relaydomains/tests.py index e40654a45..288284ae9 100644 --- a/modoboa/relaydomains/tests.py +++ b/modoboa/relaydomains/tests.py @@ -57,14 +57,16 @@ class Operations(object): class RelayDomainsTestCase(ModoTestCase, Operations): - def setUp(self): - super(RelayDomainsTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(RelayDomainsTestCase, cls).setUpTestData() admin_factories.populate_database() - self.rdom = RelayDomainFactory(domain__name='relaydomain.tld') + cls.rdom = RelayDomainFactory(domain__name='relaydomain.tld') admin_factories.DomainAliasFactory( - name='relaydomainalias.tld', target=self.rdom.domain) + name='relaydomainalias.tld', target=cls.rdom.domain) admin_factories.MailboxFactory( - domain=self.rdom.domain, address="local", + domain=cls.rdom.domain, address="local", user__username="local@relaydomain.tld", user__groups=("SimpleUsers", ) ) @@ -196,16 +198,22 @@ class RelayDomainsTestCase(ModoTestCase, Operations): class LimitsTestCase(ModoTestCase, Operations): - def setUp(self): - super(LimitsTestCase, self).setUp() + @classmethod + def setUpTestData(cls): + """Create test data.""" + super(LimitsTestCase, cls).setUpTestData() for tpl in LimitTemplates().templates: parameters.save_admin( "DEFLT_{0}".format(tpl[0].upper()), 2, app="limits" ) - self.user = UserFactory.create( + cls.user = UserFactory.create( username='reseller', groups=('Resellers',) ) + + def setUp(self): + """Initialize test.""" + super(LimitsTestCase, self).setUp() self.clt.logout() self.clt.login(username='reseller', password='toto')