mirror of
https://github.com/reconurge/flowsint.git
synced 2026-05-03 09:59:45 -05:00
87 lines
3.0 KiB
Python
87 lines
3.0 KiB
Python
from fastapi.testclient import TestClient
|
|
from app.main import app
|
|
|
|
client = TestClient(app)
|
|
|
|
def test_start_scan_no_body():
|
|
body = {}
|
|
response = client.post("/scan", data=body)
|
|
assert response.status_code == 403
|
|
data = response.json()
|
|
assert(data["detail"] == "Not authenticated")
|
|
assert data is not None
|
|
|
|
def test_get_scans_list():
|
|
response = client.get("/scanners")
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
|
|
assert "scanners" in data
|
|
assert isinstance(data["scanners"], dict)
|
|
for key in data["scanners"].keys():
|
|
scanner = data["scanners"][key]
|
|
assert isinstance(scanner, dict)
|
|
assert "class_name" in scanner
|
|
assert "name" in scanner
|
|
assert "module" in scanner
|
|
assert "key" in scanner
|
|
|
|
def test_get_scans_list_for_editor():
|
|
response = client.get("/transforms/nodes")
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
|
|
assert "items" in data
|
|
assert isinstance(data["items"], dict)
|
|
|
|
categories = ["social_account", "emails", "websites", "phones", "leaks"]
|
|
for category in categories:
|
|
assert category in data["items"]
|
|
assert isinstance(data["items"][category], list)
|
|
assert len(data["items"][category]) > 0
|
|
|
|
for scanner in data["items"][category]:
|
|
assert isinstance(scanner, dict)
|
|
assert "class_name" in scanner
|
|
assert "name" in scanner
|
|
assert "module" in scanner
|
|
assert "key" in scanner
|
|
|
|
assert isinstance(scanner["class_name"], str)
|
|
assert len(scanner["class_name"]) > 0
|
|
assert isinstance(scanner["name"], str)
|
|
assert len(scanner["name"]) > 0
|
|
|
|
assert "types" in data["items"]
|
|
assert isinstance(data["items"]["types"], list)
|
|
assert len(data["items"]["types"]) > 0
|
|
|
|
for osint_type in data["items"]["types"]:
|
|
assert isinstance(osint_type, dict)
|
|
assert "name" in osint_type
|
|
assert "regex" in osint_type
|
|
assert "description" in osint_type
|
|
|
|
assert isinstance(osint_type["regex"], str)
|
|
assert len(osint_type["regex"]) > 0
|
|
|
|
|
|
def test_vaildate_transform_no_scans():
|
|
body = {"scanners": []}
|
|
response = client.post("/transforms/validate", json=body)
|
|
data = response.json()
|
|
assert(data["valid"] == False)
|
|
assert(data["reason"] == "No scanners provided")
|
|
|
|
def test_vaildate_transform_invalid_scans():
|
|
body = {"scanners": ["sherlock_scanner", "maigret_scanner", "dummy_scanner"]}
|
|
response = client.post("/transforms/validate", json=body)
|
|
data = response.json()
|
|
assert(data["valid"] == False)
|
|
assert(data["reason"] == "Scanner 'dummy_scanner' not found in registry")
|
|
|
|
def test_vaildate_transform_valid_scans():
|
|
body = {"scanners": ["sherlock_scanner", "maigret_scanner", "ignorant_scanner"]}
|
|
response = client.post("/transforms/validate", json=body)
|
|
data = response.json()
|
|
assert(data["valid"] == True) |