44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
import unittest
|
|
from pathlib import Path
|
|
from unittest.mock import patch
|
|
|
|
from librenet_scanner.privileged_helper import command_for
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
class DeepScan048RegressionTests(unittest.TestCase):
|
|
def test_privileged_deep_hosts_force_pn_and_scan_confirmed_ips(self):
|
|
with patch("librenet_scanner.privileged_helper._trusted_binary", return_value="/usr/bin/nmap"):
|
|
cmd = command_for("nmap-deep-hosts", ["192.168.10.1", "192.168.10.254"])
|
|
self.assertIn("-Pn", cmd)
|
|
self.assertIn("-sS", cmd)
|
|
self.assertIn("-sV", cmd)
|
|
self.assertIn("-O", cmd)
|
|
self.assertIn("1000", cmd)
|
|
self.assertEqual(cmd[-2:], ["192.168.10.1", "192.168.10.254"])
|
|
|
|
def test_privileged_deep_hosts_rejects_network_targets(self):
|
|
with patch("librenet_scanner.privileged_helper._trusted_binary", return_value="/usr/bin/nmap"):
|
|
with self.assertRaises(ValueError):
|
|
command_for("nmap-deep-hosts", ["192.168.10.0/24"])
|
|
|
|
def test_deep_profile_reuses_adaptive_standard_baseline(self):
|
|
scanner = (ROOT / "src/librenet_scanner/scanner.py").read_text()
|
|
start = scanner.index('elif profile == "Approfondi"')
|
|
end = scanner.index('else:\n raise RuntimeError', start)
|
|
block = scanner[start:end]
|
|
self.assertIn("self._standard_baseline(", block)
|
|
self.assertIn('privileged_command("nmap-deep-hosts", *ips)', block)
|
|
self.assertIn('"nmap", "-Pn", "-n", "-sT"', block)
|
|
self.assertIn('"--top-ports", "1000"', block)
|
|
self.assertNotIn('privileged_command("nmap-deep", target)', block)
|
|
|
|
def test_deep_profile_signature_tracks_current_pipeline(self):
|
|
scanner = (ROOT / "src/librenet_scanner/scanner.py").read_text()
|
|
self.assertIn('deep-v10:adaptive-standard-baseline-nmap-enrichment:', scanner)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|