Spaces:
Sleeping
Sleeping
File size: 1,740 Bytes
29bd579 89f9d25 29bd579 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import unittest
from reverse_skill import (
draft_reverse_security_plan,
get_reverse_skill_context,
get_reverse_skill_scope_contract,
route_reverse_task,
)
class ReverseSkillTests(unittest.TestCase):
def test_routes_android_to_apk_specialist(self):
result = route_reverse_task("Reverse this Android APK with JADX", artifact="APK")
self.assertIn("PRIMARY ROUTE: apk-reverse", result)
self.assertIn("REQUIRED GATE", result)
def test_routes_unknown_task_to_generic_fallback(self):
result = route_reverse_task("Understand an unknown compiled artifact")
self.assertIn("PRIMARY ROUTE: reverse-engineering", result)
def test_context_rejects_unknown_route_without_execution(self):
result = get_reverse_skill_context("not-a-route")
self.assertIn("Unknown route", result)
def test_context_can_return_pinned_route_reference(self):
result = get_reverse_skill_context("api-security", detail="reference")
self.assertIn("BEGIN REFERENCE", result)
self.assertIn("api-security", result.lower())
def test_scope_template_is_explicit(self):
result = get_reverse_skill_scope_contract()
self.assertIn("auth.status: pending | granted", result)
self.assertIn("network_profile", result)
def test_plan_stays_draft_without_authorization(self):
result = draft_reverse_security_plan("Assess an API", artifact="REST API", network_profile="authorized_target_only")
self.assertIn("PLAN STATUS: draft / read-only", result)
self.assertIn("BLOCKED for target-facing work", result)
self.assertIn("no commands, scans, target requests", result)
if __name__ == "__main__":
unittest.main()
|