feat: 正则匹配检测测试
This commit is contained in:
parent
1a71a72ddf
commit
e653ddd726
@ -43,7 +43,6 @@ def inject_random_backdoor(
|
||||
if random.random() < sample_rate:
|
||||
injected_python_files.append(python_file)
|
||||
injectedNum = len(injected_python_files)
|
||||
print([str(i) for i in injected_python_files])
|
||||
for python_file in injected_python_files:
|
||||
with open(python_file, "r+",errors="ignore") as f:
|
||||
lines = f.readlines()
|
||||
|
@ -9,24 +9,26 @@ from detection.GPTdetection import detectGPT
|
||||
|
||||
|
||||
class TestFinalTests(unittest.TestCase):
|
||||
def test_final_tests(self):
|
||||
def setUp(self) -> None:
|
||||
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)
|
||||
self.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
|
||||
self.all_python_files = list(project_path.rglob("*.py"))
|
||||
self.filesNum = len(self.all_python_files)
|
||||
self.trueRate = self.injectedNum / self.filesNum
|
||||
|
||||
def test_final_tests(self):
|
||||
detectedNum = 0
|
||||
for file in all_python_files:
|
||||
for file in self.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)
|
||||
print(detectedNum / self.filesNum)
|
||||
self.assertAlmostEqual(detectedNum / self.filesNum, self.trueRate, places=1)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
Loading…
x
Reference in New Issue
Block a user