abcj / test_framework.py
theghostcmd's picture
Upload 10 files
758edb3 verified
#!/usr/bin/env python3
import os
import sys
sys.path.append('.')
from database.db import Database
from detection.threat_detector import ThreatDetector
from ai.risk_scoring import RiskScorer
from reports.report_generator import ReportGenerator
def test_db():
db = Database()
db.insert_event("192.168.1.100", "8.8.8.8", "TCP", 443, 1500, "TEST", 50, None)
events = db.get_recent_events()
assert len(events) >= 1
print("[OK] Database works")
def test_detector():
det = ThreatDetector(time_window=10, port_scan_th=3)
packets = [
{'src_ip': '1.2.3.4', 'port': 80, 'timestamp': 100},
{'src_ip': '1.2.3.4', 'port': 81, 'timestamp': 101},
{'src_ip': '1.2.3.4', 'port': 82, 'timestamp': 102},
{'src_ip': '1.2.3.4', 'port': 83, 'timestamp': 103},
]
for p in packets:
threats = det.detect(p)
assert any(t[0]=='PORT_SCAN' for t in threats)
print("[OK] Threat detector works")
def test_risk_scorer():
scorer = RiskScorer()
risk = scorer.compute_risk([('PORT_SCAN', 80)], 0.5)
assert 0 <= risk <= 100
print("[OK] Risk scoring works")
def test_report(db):
gen = ReportGenerator(db)
paths = gen.generate_report("test")
for p in paths:
assert os.path.exists(p)
print("[OK] Report generation works")
if __name__ == "__main__":
test_db()
test_detector()
test_risk_scorer()
db = Database()
test_report(db)
print("All tests passed.")