misp-dashboard/tests/test_geo.py

86 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3.5
import configparser
import datetime
import os
import sys
import redis
from helpers import geo_helper
sys.path.append('..')
configfile = 'test_config.cfg'
cfg = configparser.ConfigParser()
cfg.read(configfile)
serv_redis_db = redis.StrictRedis(
host='localhost',
port=6260,
db=1)
geo_helper = geo_helper.Geo_helper(serv_redis_db, cfg)
categ = 'Network Activity'
def wipeRedis():
serv_redis_db.flushall()
def errorExit():
sys.exit(1)
def test():
flag_error = False
today = datetime.datetime.now()
# IP -> Coord
supposed_ip = '8.8.8.8'
geo_helper.getCoordFromIpAndPublish(supposed_ip, categ)
rep = geo_helper.getTopCoord(today)
excpected_result = [['{"lat": 37.751, "lon": -97.822, "categ": "Network Activity", "value": "8.8.8.8"}', 1.0]]
if rep != excpected_result:
print('ip to coord result not matching')
flag_error = True
# gethitmap
rep = geo_helper.getHitMap(today)
excpected_result = [['US', 1.0]]
if rep != excpected_result:
print('getHitMap result not matching')
flag_error = True
# getCoordsByRadius
rep = geo_helper.getCoordsByRadius(today, today, 0.000, 0.000, '1')
excpected_result = []
if rep != excpected_result:
print('getCoordsByRadius result not matching')
flag_error = True
rep = geo_helper.getCoordsByRadius(today, today, 37.750, -97.821, '10')
excpected_result = [[['{"categ": "Network Activity", "value": "8.8.8.8"}'], [-97.82200008630753, 37.75100012475438]]]
if rep != excpected_result:
print('getCoordsByRadius result not matching')
flag_error = True
wipeRedis()
# Phone -> Coord
phoneNumber = '(+352) 247-82000'
geo_helper.getCoordFromPhoneAndPublish(phoneNumber, categ)
rep = geo_helper.getTopCoord(datetime.datetime.now())[0]
excpected_result = ['{"lat": "49.7500", "lon": "6.1667"}', 1.0]
if rep != excpected_result:
print('Phone to coord result not matching')
flag_error = True
return flag_error
wipeRedis()
if test():
wipeRedis()
errorExit()
else:
wipeRedis()
print('Geo tests succeeded')