Files
flowsint/flowsint-api/tests/api/test_api.py
2025-04-23 15:27:11 +02:00

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)