mirror of https://github.com/MISP/misp-dashboard
86 lines
2.1 KiB
Python
Executable File
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')
|