import unittest import warnings import os import json from detection.cngptdetection import detectGPT class TestBackdoorDetection(unittest.TestCase): def test_gpt_risk_detection(self): if os.getenv("BAIDU_API_KEY") is None or os.getenv("BAIDU_SECRET_KEY") is None: warnings.warn("BAIDU_API_KEY or BAIDU_SECRET_KEY is not set, test skipped.", UserWarning) self.skipTest("BAIDU_API_KEY or BAIDU_SECRET_KEY is not set") content = """import os os.system('rm -rf /') # high risk exec('print("Hello")') # high risk eval('2 + 2') # high risk """ results1 = detectGPT(content) classified_results = json.loads(results1) self.assertEqual(len(classified_results["high"]), 3) def test_gpt_no_risk_detection(self): if os.getenv("BAIDU_API_KEY") is None or os.getenv("BAIDU_SECRET_KEY") is None: warnings.warn("BAIDU_API_KEY or BAIDU_SECRET_KEY is not set, test skipped.", UserWarning) self.skipTest("BAIDU_API_KEY or BAIDU_SECRET_KEY is not set") content = """a = 10 b = a + 5 print('This should not be detected as risky.') """ results2 = detectGPT(content) classified_results = json.loads(results2) self.assertEqual(len(classified_results["high"]), 0) self.assertEqual(len(classified_results["medium"]), 0) self.assertEqual(len(classified_results["low"]), 0) if __name__ == "__main__": unittest.main()