feat: (UNFINISH) 正则匹配检测测试

This commit is contained in:
2024-06-03 13:44:03 +08:00
parent da9b2b52ac
commit 1a71a72ddf
4 changed files with 35 additions and 10 deletions

View File

@@ -1,10 +1,33 @@
import unittest
import os
import shutil
from detection.utils import read_file_content
from .final_tests_util import *
from detection.Regexdetection import find_dangerous_functions
from detection.GPTdetection import detectGPT
class TestFinalTests(unittest.TestCase):
def setUp(self) -> None:
return super().setUp()
def test_final_tests(self):
self.assertTrue(True)
shutil.rmtree("./tmp/repo", ignore_errors=True)
clone_repo("https://github.com/TheAlgorithms/Python.git", "./tmp/repo")
sampleRate = 0.1
injectedNum = inject_random_backdoor("./tmp/repo",sample_rate=sampleRate)
project_path = Path("./tmp/repo")
all_python_files = list(project_path.rglob("*.py"))
filesNum = len(all_python_files)
trueRate = injectedNum / filesNum
detectedNum = 0
for file in all_python_files:
content = read_file_content(str(file))
results = find_dangerous_functions(content, ".py")
if len(results["high"]) > 0 or len(results["medium"]) > 0 or len(results["low"]) > 0:
print(str(file))
detectedNum += 1
shutil.rmtree("./tmp/repo",ignore_errors=True)
self.assertAlmostEquals(detectedNum / filesNum, trueRate, places=1)
if __name__ == "__main__":
unittest.main()