add unittests
This commit is contained in:
3
run_tests.sh
Executable file
3
run_tests.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/env bash
|
||||||
|
|
||||||
|
pipenv run python -m unittest -bv test_dnsverify
|
||||||
50
test_dnsverify.py
Normal file
50
test_dnsverify.py
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/env python
|
||||||
|
|
||||||
|
'''
|
||||||
|
Unit tests for dnsverify
|
||||||
|
'''
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from dnsverify import do_check
|
||||||
|
from dnsverify import get_authoritative_ns
|
||||||
|
from dnsverify import get_domains_from_yaml
|
||||||
|
from dnsverify import verify_authoritative_ns
|
||||||
|
from pylint.lint import Run
|
||||||
|
from pylint.reporters import CollectingReporter
|
||||||
|
|
||||||
|
class TestDnsVerify(unittest.TestCase):
|
||||||
|
def test_do_check(self):
|
||||||
|
'''
|
||||||
|
... Test if checks acutally fail when an error occures.
|
||||||
|
'''
|
||||||
|
self.assertEqual(do_check(['puzzle.ch'],
|
||||||
|
['ns1.google.com'],
|
||||||
|
verbose=False),
|
||||||
|
False)
|
||||||
|
def test_get_authoritative_ns(self):
|
||||||
|
'''
|
||||||
|
... Test if garbage queries trigger a stack trace.
|
||||||
|
'''
|
||||||
|
self.assertEqual(get_authoritative_ns('dinimer.lolwas'), [])
|
||||||
|
def test_get_domains_from_yaml(self):
|
||||||
|
'''
|
||||||
|
... Test wheter missing files generate an empty list.
|
||||||
|
'''
|
||||||
|
self.assertEqual(get_domains_from_yaml(["notexist.yaml"]), [])
|
||||||
|
def test_verify_authoritative_ns(self):
|
||||||
|
'''
|
||||||
|
... Test wheter false is returned when the ns does not match the list. And test if type errors are handeled correctly.
|
||||||
|
'''
|
||||||
|
self.assertEqual(verify_authoritative_ns('ns1.google.com', ['ns2.google.com']), False)
|
||||||
|
self.assertRaises(TypeError, verify_authoritative_ns, 123, ['123'])
|
||||||
|
self.assertRaises(TypeError, verify_authoritative_ns, "123", "123")
|
||||||
|
|
||||||
|
def test_pylint(self):
|
||||||
|
'''
|
||||||
|
... Test wheter the coding style is acceptable.
|
||||||
|
'''
|
||||||
|
rep = CollectingReporter()
|
||||||
|
results = Run(['dnsverify.py', '-sn'], reporter=rep, exit=False)
|
||||||
|
score = results.linter.stats['global_note']
|
||||||
|
self.assertGreaterEqual(score, 8, "Pylint score to low. Fix your code.")
|
||||||
Reference in New Issue
Block a user