mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
Fix unit tests.
This commit is contained in:
+1
-67
@@ -1,16 +1,12 @@
|
||||
import os
|
||||
import tempfile
|
||||
"""Tests for core application."""
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import TestCase
|
||||
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
from . import factories
|
||||
|
||||
|
||||
class ProfileTestCase(ModoTestCase):
|
||||
fixtures = ['initial_users.json']
|
||||
|
||||
def setUp(self):
|
||||
super(ProfileTestCase, self).setUp()
|
||||
@@ -46,65 +42,3 @@ class ProfileTestCase(ModoTestCase):
|
||||
self.assertTrue(
|
||||
self.clt.login(username="user@test.com", password="tutu")
|
||||
)
|
||||
|
||||
|
||||
class ModoboaAdminCommandTestCase(TestCase):
|
||||
|
||||
MAP_FILES = {
|
||||
"modoboa_admin": [
|
||||
"sql-domains.cf", "sql-domain-aliases.cf", "sql-aliases.cf",
|
||||
"sql-domain-aliases-mailboxes.cf", "sql-catchall-aliases.cf",
|
||||
"sql-maintain.cf"
|
||||
],
|
||||
"modoboa_postfix_autoreply": [
|
||||
"sql-autoreplies-transport.cf", "sql-autoreplies.cf"
|
||||
],
|
||||
"modoboa_admin_relaydomains": [
|
||||
"sql-relaydomains.cf", "sql-relaydomains-transport.cf",
|
||||
"sql-relaydomain-aliases-transport.cf",
|
||||
"sql-relay-recipient-verification.cf"
|
||||
]
|
||||
}
|
||||
|
||||
def setUp(self):
|
||||
self.workdir = tempfile.mkdtemp()
|
||||
|
||||
def tearDown(self):
|
||||
exec_cmd("rm -rf {0}".format(self.workdir))
|
||||
|
||||
def _test_maps_generation(self, engine, extensions=None):
|
||||
if extensions is None:
|
||||
extensions = [
|
||||
"modoboa_admin", "modoboa_postfix_autoreply",
|
||||
"modoboa_admin_relaydomains"
|
||||
]
|
||||
dburl = "{0}://user:password@localhost/testdb".format(engine)
|
||||
code, output = exec_cmd(
|
||||
"modoboa-admin.py postfix_maps --extensions {0}"
|
||||
" --dburl {1} {2}".format(
|
||||
" ".join(extensions), dburl, self.workdir
|
||||
)
|
||||
)
|
||||
self.assertEqual(code, 0)
|
||||
for extension in extensions:
|
||||
for mapfile in self.MAP_FILES[extension]:
|
||||
path = "{0}/{1}".format(self.workdir, mapfile)
|
||||
self.assertTrue(os.path.exists(path))
|
||||
with open(path) as fpo:
|
||||
content = fpo.read()
|
||||
if engine != "sqlite":
|
||||
self.assertIn("user = user", content)
|
||||
self.assertIn("password = password", content)
|
||||
self.assertIn("dbname = testdb", content)
|
||||
self.assertIn("hosts = localhost", content)
|
||||
else:
|
||||
self.assertIn("dbpath = testdb", content)
|
||||
|
||||
def test_postgres_maps(self):
|
||||
self._test_maps_generation("postgres")
|
||||
|
||||
def test_mysql_maps(self):
|
||||
self._test_maps_generation("mysql")
|
||||
|
||||
def test_sqlite_maps(self):
|
||||
self._test_maps_generation("sqlite")
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from .sysutils import exec_cmd
|
||||
|
||||
|
||||
@@ -41,3 +43,46 @@ class TestRunnerMixin(object):
|
||||
self.assertEqual(code, 0)
|
||||
|
||||
|
||||
class MapFilesTestCase(TestCase):
|
||||
|
||||
"""A generic test case to check map files generation."""
|
||||
|
||||
MAP_FILES = None
|
||||
|
||||
def setUp(self):
|
||||
self.workdir = tempfile.mkdtemp()
|
||||
|
||||
def tearDown(self):
|
||||
exec_cmd("rm -rf {0}".format(self.workdir))
|
||||
|
||||
def _test_maps_generation(self, engine):
|
||||
dburl = "{0}://user:password@localhost/testdb".format(engine)
|
||||
code, output = exec_cmd(
|
||||
"modoboa-admin.py postfix_maps --extensions {0}"
|
||||
" --dburl {1} {2}".format(
|
||||
self.extension, dburl, self.workdir
|
||||
)
|
||||
)
|
||||
self.assertEqual(code, 0)
|
||||
|
||||
for mapfile in self.MAP_FILES:
|
||||
path = "{0}/{1}".format(self.workdir, mapfile)
|
||||
self.assertTrue(os.path.exists(path))
|
||||
with open(path) as fpo:
|
||||
content = fpo.read()
|
||||
if engine != "sqlite":
|
||||
self.assertIn("user = user", content)
|
||||
self.assertIn("password = password", content)
|
||||
self.assertIn("dbname = testdb", content)
|
||||
self.assertIn("hosts = localhost", content)
|
||||
else:
|
||||
self.assertIn("dbpath = testdb", content)
|
||||
|
||||
def test_postgres_maps(self):
|
||||
self._test_maps_generation("postgres")
|
||||
|
||||
def test_mysql_maps(self):
|
||||
self._test_maps_generation("mysql")
|
||||
|
||||
def test_sqlite_maps(self):
|
||||
self._test_maps_generation("sqlite")
|
||||
|
||||
Reference in New Issue
Block a user