35 lines
1,023 B
Python
35 lines
1,023 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import database
|
||
|
import os
|
||
|
import logging
|
||
|
import csv
|
||
|
|
||
|
TESTS_DIR = 'tests'
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
|
||
|
DB = database.Database()
|
||
|
log = logging.getLogger('tests')
|
||
|
|
||
|
for filename in os.listdir(TESTS_DIR):
|
||
|
log.info("")
|
||
|
log.info("Running tests from %s", filename)
|
||
|
path = os.path.join(TESTS_DIR, filename)
|
||
|
with open(path, 'rt') as fdesc:
|
||
|
reader = csv.DictReader(fdesc)
|
||
|
for test in reader:
|
||
|
log.info("Testing %s (%s)", test['url'], test['comment'])
|
||
|
|
||
|
for white in test['white'].split(':'):
|
||
|
if not white:
|
||
|
continue
|
||
|
if any(DB.get_domain(white)):
|
||
|
log.error("False positive: %s", white)
|
||
|
|
||
|
for black in test['black'].split(':'):
|
||
|
if not black:
|
||
|
continue
|
||
|
if not any(DB.get_domain(black)):
|
||
|
log.error("False negative: %s", black)
|