#!/usr/bin/env python # -*- coding: utf-8 -*- import pytest class TestAuditConf(object): @pytest.fixture(autouse=True) def init(self, ssh_audit): self.AuditConf = ssh_audit.AuditConf def test_audit_conf_defaults(self): conf = self.AuditConf() assert conf.host is None assert conf.port == 22 assert conf.ssh1 is True assert conf.ssh2 is True assert conf.batch is False assert conf.colors is True assert conf.verbose is False assert conf.minlevel == 'info' def test_audit_conf_booleans(self): conf = self.AuditConf() for p in ['ssh1', 'ssh2', 'batch', 'colors', 'verbose']: for v in [True, 1]: setattr(conf, p, v) assert getattr(conf, p) is True for v in [False, 0]: setattr(conf, p, v) assert getattr(conf, p) is False def test_audit_conf_port(self): conf = self.AuditConf() for port in [22, 2222]: conf.port = port assert conf.port == port for port in [-1, 0, 65536, 99999]: with pytest.raises(ValueError) as excinfo: conf.port = port excinfo.match(r'.*invalid port.*') def test_audit_conf_minlevel(self): conf = self.AuditConf() for level in ['info', 'warn', 'fail']: conf.minlevel = level assert conf.minlevel == level for level in ['head', 'good', 'unknown', None]: with pytest.raises(ValueError) as excinfo: conf.minlevel = level excinfo.match(r'.*invalid level.*')