mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
Fixing unit tests.
This commit is contained in:
@@ -7,6 +7,7 @@ services: mysql
|
||||
|
||||
install:
|
||||
- python setup.py -q install
|
||||
- pip install -q pexpect
|
||||
|
||||
before_script:
|
||||
- mysql -e 'create database modoboa_test;'
|
||||
|
||||
@@ -155,6 +155,7 @@ MODOBOA_APPS = (
|
||||
# Modoboa extensions here.
|
||||
'modoboa.extensions.admin',
|
||||
'modoboa.extensions.limits',
|
||||
'modoboa.extensions.postfix_relay_domains',
|
||||
'modoboa.extensions.postfix_autoreply',
|
||||
'modoboa.extensions.webmail',
|
||||
'modoboa.extensions.stats',
|
||||
|
||||
@@ -78,7 +78,7 @@ def saveextensions(request):
|
||||
for k in request.POST.keys():
|
||||
if k.startswith("select_"):
|
||||
parts = k.split("_", 1)
|
||||
dbext = Extension.objects.get(name=parts[1])
|
||||
dbext = Extension.objects.get(name=parts[1])
|
||||
if not dbext in actived_exts:
|
||||
dbext.on()
|
||||
else:
|
||||
|
||||
@@ -10,7 +10,7 @@ from modoboa.lib import events
|
||||
class LimitTemplates(Singleton):
|
||||
|
||||
def __init__(self):
|
||||
self.templates = [
|
||||
self.__templates = [
|
||||
("domain_admins_limit", ugettext_lazy("Domain admins"),
|
||||
ugettext_lazy("Maximum number of domain administrators this user can create"),
|
||||
'Resellers'),
|
||||
@@ -25,7 +25,10 @@ class LimitTemplates(Singleton):
|
||||
("mailbox_aliases_limit", ugettext_lazy("Mailbox aliases"),
|
||||
ugettext_lazy("Maximum number of mailbox aliases this user can create"))
|
||||
]
|
||||
self.templates += events.raiseQueryEvent('GetExtraLimitTemplates')
|
||||
|
||||
@property
|
||||
def templates(self):
|
||||
return self.__templates + events.raiseQueryEvent('GetExtraLimitTemplates')
|
||||
|
||||
|
||||
class LimitsPool(models.Model):
|
||||
|
||||
@@ -12,10 +12,10 @@ from modoboa.extensions.limits.models import LimitTemplates
|
||||
|
||||
class PermissionsTestCase(ExtTestCase):
|
||||
fixtures = ["initial_users.json"]
|
||||
names = ["limits"]
|
||||
|
||||
def setUp(self):
|
||||
super(PermissionsTestCase, self).setUp()
|
||||
self.activate_extensions('limits')
|
||||
populate_database()
|
||||
|
||||
def test_domainadmin_deletes_reseller(self):
|
||||
@@ -41,7 +41,6 @@ class PermissionsTestCase(ExtTestCase):
|
||||
|
||||
class ResourceTestCase(ExtTestCase):
|
||||
fixtures = ["initial_users.json"]
|
||||
names = ["limits"]
|
||||
|
||||
def setUp(self):
|
||||
"""Custom setUp method.
|
||||
@@ -49,10 +48,8 @@ class ResourceTestCase(ExtTestCase):
|
||||
The 'limits' is manually loaded to ensure extra parameters
|
||||
provided by 'postfix_relay_domains' are properly received.
|
||||
"""
|
||||
from modoboa.core.extensions import exts_pool
|
||||
|
||||
super(ResourceTestCase, self).setUp()
|
||||
exts_pool.get_extension('limits').load()
|
||||
self.activate_extensions('limits')
|
||||
for tpl in LimitTemplates().templates:
|
||||
parameters.save_admin('DEFLT_%s' % tpl[0].upper(), 2, app='limits')
|
||||
populate_database()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.core.factories import UserFactory
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.lib.tests import ExtTestCase
|
||||
from modoboa.extensions.admin import factories
|
||||
from modoboa.extensions.limits.tests import ResourceTestCase
|
||||
@@ -40,13 +41,18 @@ class Operations(object):
|
||||
values, status
|
||||
)
|
||||
|
||||
def _check_limit(self, name, curvalue, maxvalue):
|
||||
l = self.user.limitspool.get_limit('%s_limit' % name)
|
||||
self.assertEqual(l.curvalue, curvalue)
|
||||
self.assertEqual(l.maxvalue, maxvalue)
|
||||
|
||||
|
||||
class RelayDomainsTestCase(ExtTestCase, Operations):
|
||||
fixtures = ['initial_users.json']
|
||||
names = ['postfix_relay_domains']
|
||||
|
||||
def setUp(self):
|
||||
super(RelayDomainsTestCase, self).setUp()
|
||||
self.activate_extensions('postfix_relay_domains')
|
||||
factories.populate_database()
|
||||
self.rdom = RelayDomainFactory(name='relaydomain.tld')
|
||||
RelayDomainAliasFactory(name='relaydomainalias.tld', target=self.rdom)
|
||||
@@ -156,12 +162,17 @@ class RelayDomainsTestCase(ExtTestCase, Operations):
|
||||
RelayDomain.objects.get(name='relaydomainalias.tld')
|
||||
|
||||
|
||||
class LimitsTestCase(ResourceTestCase, Operations):
|
||||
names = ['limits', 'postfix_relay_domains']
|
||||
class LimitsTestCase(ExtTestCase, Operations):
|
||||
fixtures = ['initial_users.json']
|
||||
|
||||
def setUp(self):
|
||||
super(LimitsTestCase, self).setUp()
|
||||
self.user = UserFactory(
|
||||
from modoboa.extensions.limits.models import LimitTemplates
|
||||
|
||||
self.activate_extensions('limits', 'postfix_relay_domains')
|
||||
for tpl in LimitTemplates().templates:
|
||||
parameters.save_admin('DEFLT_%s' % tpl[0].upper(), 2, app='limits')
|
||||
self.user = UserFactory.create(
|
||||
username='reseller', groups=('Resellers',)
|
||||
)
|
||||
self.clt.logout()
|
||||
|
||||
@@ -27,15 +27,20 @@ class ModoTestCase(TestCase):
|
||||
|
||||
|
||||
class ExtTestCase(ModoTestCase):
|
||||
names = []
|
||||
|
||||
def setUp(self, *args, **kwargs):
|
||||
super(ExtTestCase, self).setUp(*args, **kwargs)
|
||||
self.clt.get(reverse("modoboa.core.views.admin.viewextensions"))
|
||||
self.clt.post(
|
||||
|
||||
def activate_extensions(self, *names):
|
||||
from modoboa.core.extensions import exts_pool
|
||||
|
||||
self.ajax_post(
|
||||
reverse("modoboa.core.views.admin.saveextensions"),
|
||||
dict(("select_%s" % name, "1") for name in self.names)
|
||||
dict(("select_%s" % name, "1") for name in names)
|
||||
)
|
||||
for name in names:
|
||||
exts_pool.get_extension(name).load()
|
||||
|
||||
|
||||
class TestParams(parameters.AdminParametersForm):
|
||||
|
||||
Reference in New Issue
Block a user