mirror of
https://github.com/jtesta/ssh-audit.git
synced 2024-11-22 18:41:40 +01:00
Test command line parsing.
This commit is contained in:
parent
f1e8231b67
commit
69436b2c77
@ -7,17 +7,33 @@ class TestAuditConf(object):
|
|||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def init(self, ssh_audit):
|
def init(self, ssh_audit):
|
||||||
self.AuditConf = ssh_audit.AuditConf
|
self.AuditConf = ssh_audit.AuditConf
|
||||||
|
self.usage = ssh_audit.usage
|
||||||
|
|
||||||
|
def _test_conf(self, conf, **kwargs):
|
||||||
|
options = {
|
||||||
|
'host': None,
|
||||||
|
'port': 22,
|
||||||
|
'ssh1': True,
|
||||||
|
'ssh2': True,
|
||||||
|
'batch': False,
|
||||||
|
'colors': True,
|
||||||
|
'verbose': False,
|
||||||
|
'minlevel': 'info'
|
||||||
|
}
|
||||||
|
for k, v in kwargs.items():
|
||||||
|
options[k] = v
|
||||||
|
assert conf.host == options['host']
|
||||||
|
assert conf.port == options['port']
|
||||||
|
assert conf.ssh1 is options['ssh1']
|
||||||
|
assert conf.ssh2 is options['ssh2']
|
||||||
|
assert conf.batch is options['batch']
|
||||||
|
assert conf.colors is options['colors']
|
||||||
|
assert conf.verbose is options['verbose']
|
||||||
|
assert conf.minlevel == options['minlevel']
|
||||||
|
|
||||||
def test_audit_conf_defaults(self):
|
def test_audit_conf_defaults(self):
|
||||||
conf = self.AuditConf()
|
conf = self.AuditConf()
|
||||||
assert conf.host is None
|
self._test_conf(conf)
|
||||||
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):
|
def test_audit_conf_booleans(self):
|
||||||
conf = self.AuditConf()
|
conf = self.AuditConf()
|
||||||
@ -48,3 +64,52 @@ class TestAuditConf(object):
|
|||||||
with pytest.raises(ValueError) as excinfo:
|
with pytest.raises(ValueError) as excinfo:
|
||||||
conf.minlevel = level
|
conf.minlevel = level
|
||||||
excinfo.match(r'.*invalid level.*')
|
excinfo.match(r'.*invalid level.*')
|
||||||
|
|
||||||
|
def test_audit_conf_cmdline(self):
|
||||||
|
c = lambda x: self.AuditConf.from_cmdline(x.split(), self.usage)
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('-x')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('-h')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('--help')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c(':')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c(':22')
|
||||||
|
conf = c('localhost')
|
||||||
|
self._test_conf(conf, host='localhost')
|
||||||
|
conf = c('github.com')
|
||||||
|
self._test_conf(conf, host='github.com')
|
||||||
|
conf = c('localhost:2222')
|
||||||
|
self._test_conf(conf, host='localhost', port=2222)
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('localhost:')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('localhost:abc')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('localhost:-22')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('localhost:99999')
|
||||||
|
conf = c('-1 localhost')
|
||||||
|
self._test_conf(conf, host='localhost', ssh1=True, ssh2=False)
|
||||||
|
conf = c('-2 localhost')
|
||||||
|
self._test_conf(conf, host='localhost', ssh1=False, ssh2=True)
|
||||||
|
conf = c('-12 localhost')
|
||||||
|
self._test_conf(conf, host='localhost', ssh1=True, ssh2=True)
|
||||||
|
conf = c('-b localhost')
|
||||||
|
self._test_conf(conf, host='localhost', batch=True, verbose=True)
|
||||||
|
conf = c('-n localhost')
|
||||||
|
self._test_conf(conf, host='localhost', colors=False)
|
||||||
|
conf = c('-v localhost')
|
||||||
|
self._test_conf(conf, host='localhost', verbose=True)
|
||||||
|
conf = c('-l info localhost')
|
||||||
|
self._test_conf(conf, host='localhost', minlevel='info')
|
||||||
|
conf = c('-l warn localhost')
|
||||||
|
self._test_conf(conf, host='localhost', minlevel='warn')
|
||||||
|
conf = c('-l fail localhost')
|
||||||
|
self._test_conf(conf, host='localhost', minlevel='fail')
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
conf = c('-l something localhost')
|
||||||
|
Loading…
Reference in New Issue
Block a user