diff --git a/tests/fixtures/generic/postconf-M.json b/tests/fixtures/generic/postconf-M.json new file mode 100644 index 00000000..ef4584ab --- /dev/null +++ b/tests/fixtures/generic/postconf-M.json @@ -0,0 +1 @@ +[{"service_name":"smtp","service_type":"inet","private":false,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"smtpd","no_wake_up_before_first_use":null},{"service_name":"pickup","service_type":"unix","private":false,"unprivileged":null,"chroot":true,"wake_up_time":60,"process_limit":1,"command":"pickup","no_wake_up_before_first_use":false},{"service_name":"cleanup","service_type":"unix","private":false,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":0,"command":"cleanup","no_wake_up_before_first_use":null},{"service_name":"qmgr","service_type":"unix","private":false,"unprivileged":null,"chroot":false,"wake_up_time":300,"process_limit":1,"command":"qmgr","no_wake_up_before_first_use":false},{"service_name":"tlsmgr","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":1000,"process_limit":1,"command":"tlsmgr","no_wake_up_before_first_use":true},{"service_name":"rewrite","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"trivial-rewrite","no_wake_up_before_first_use":null},{"service_name":"bounce","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":0,"command":"bounce","no_wake_up_before_first_use":null},{"service_name":"defer","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":0,"command":"bounce","no_wake_up_before_first_use":null},{"service_name":"trace","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":0,"command":"bounce","no_wake_up_before_first_use":null},{"service_name":"verify","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":1,"command":"verify","no_wake_up_before_first_use":null},{"service_name":"flush","service_type":"unix","private":false,"unprivileged":null,"chroot":true,"wake_up_time":1000,"process_limit":0,"command":"flush","no_wake_up_before_first_use":true},{"service_name":"proxymap","service_type":"unix","private":null,"unprivileged":null,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"proxymap","no_wake_up_before_first_use":null},{"service_name":"proxywrite","service_type":"unix","private":null,"unprivileged":null,"chroot":false,"wake_up_time":null,"process_limit":1,"command":"proxymap","no_wake_up_before_first_use":null},{"service_name":"smtp","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"smtp","no_wake_up_before_first_use":null},{"service_name":"relay","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"smtp -o syslog_name=postfix/$service_name","no_wake_up_before_first_use":null},{"service_name":"showq","service_type":"unix","private":false,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"showq","no_wake_up_before_first_use":null},{"service_name":"error","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"error","no_wake_up_before_first_use":null},{"service_name":"retry","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"error","no_wake_up_before_first_use":null},{"service_name":"discard","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"discard","no_wake_up_before_first_use":null},{"service_name":"local","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"local","no_wake_up_before_first_use":null},{"service_name":"virtual","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"virtual","no_wake_up_before_first_use":null},{"service_name":"lmtp","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":null,"command":"lmtp","no_wake_up_before_first_use":null},{"service_name":"anvil","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":1,"command":"anvil","no_wake_up_before_first_use":null},{"service_name":"scache","service_type":"unix","private":null,"unprivileged":null,"chroot":true,"wake_up_time":null,"process_limit":1,"command":"scache","no_wake_up_before_first_use":null},{"service_name":"postlog","service_type":"unix-dgram","private":false,"unprivileged":null,"chroot":false,"wake_up_time":null,"process_limit":1,"command":"postlogd","no_wake_up_before_first_use":null},{"service_name":"maildrop","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"pipe flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}","no_wake_up_before_first_use":null},{"service_name":"uucp","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)","no_wake_up_before_first_use":null},{"service_name":"ifmail","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)","no_wake_up_before_first_use":null},{"service_name":"bsmtp","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient","no_wake_up_before_first_use":null},{"service_name":"scalemail-backend","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":2,"command":"pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}","no_wake_up_before_first_use":null},{"service_name":"mailman","service_type":"unix","private":null,"unprivileged":false,"chroot":false,"wake_up_time":null,"process_limit":null,"command":"pipe flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}","no_wake_up_before_first_use":null}] diff --git a/tests/test_postconf.py b/tests/test_postconf.py new file mode 100644 index 00000000..c02dad57 --- /dev/null +++ b/tests/test_postconf.py @@ -0,0 +1,35 @@ +import os +import unittest +import json +import jc.parsers.postconf + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class MyTests(unittest.TestCase): + + def setUp(self): + # input + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/postconf-M.out'), 'r', encoding='utf-8') as f: + self.generic_postconf_m = f.read() + + # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/postconf-M.json'), 'r', encoding='utf-8') as f: + self.generic_postconf_m_json = json.loads(f.read()) + + + def test_postconf_nodata(self): + """ + Test 'postconf' with no data + """ + self.assertEqual(jc.parsers.postconf.parse('', quiet=True), []) + + def test_postconf(self): + """ + Test 'postconf -M' + """ + self.assertEqual(jc.parsers.postconf.parse(self.generic_postconf_m, quiet=True), self.generic_postconf_m_json) + + +if __name__ == '__main__': + unittest.main()