Newer
Older
postorius / src / mailman_django / tests / setup.py
@Florian Fuchs Florian Fuchs on 1 Feb 2012 1 KB Bugfix for lp:921736
import os
import time
import shutil
import tempfile
import subprocess
from django.conf import settings

class Testobject:
    bindir = None
    vardir = None
    cfgfile = None

def setup_mm(testobject):
    os.environ['MAILMAN_TEST_BINDIR'] = settings.MAILMAN_TEST_BINDIR
    bindir = testobject.bindir = os.environ.get('MAILMAN_TEST_BINDIR')
    if bindir is None:
        raise RuntimeError("something's not quite right")
    vardir = testobject.vardir = tempfile.mkdtemp()
    cfgfile = testobject.cfgfile = os.path.join(vardir, 'client_test.cfg')
    with open(cfgfile, 'w') as fp:
        print >> fp, """\
[mailman] 
layout: tmpdir
[paths.tmpdir]
var_dir: {vardir}
log_dir: /tmp/mmclient/logs
[runner.archive]
start: no
[runner.bounces]
start: no
[runner.command]
start: no
[runner.in]
start: no
[runner.lmtp]
start: no
[runner.news]
start: no
[runner.out]
start: no
[runner.pipeline]
start: no
[runner.retry]
start: no
[runner.virgin]
start: no
[runner.digest]
start: no
""".format(vardir=vardir)
    mailman = os.path.join(bindir, 'mailman')
    subprocess.call([mailman, '-C', cfgfile, 'start', '-q'])
    time.sleep(3)
    return testobject

def teardown_mm(testobject):
    bindir = testobject.bindir
    cfgfile = testobject.cfgfile
    vardir = testobject.vardir
    mailman = os.path.join(bindir, 'mailman')
    subprocess.call([mailman, '-C', cfgfile, 'stop', '-q'])
    shutil.rmtree(vardir)
    time.sleep(3)