MCPcopy Create free account
hub / github.com/ParzivalHack/PySpector / TestAIModelDeserializationPatterns

Class TestAIModelDeserializationPatterns

tests/unit/test_ai_rules.py:143–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141
142
143class TestAIModelDeserializationPatterns:
144 def test_keras_h5_model_load_metadata(self):
145 rule = _ai_rule("AI203")
146 assert rule["severity"] == "High"
147 assert rule["cwe"] == "CWE-502"
148 assert rule["pattern"] == r"keras\.models\.load_model"
149
150 def test_keras_h5_model_load_fires(self):
151 code = """
152 model = keras.models.load_model(model_path)
153 """
154 assert fires(code, "AI203")
155
156 def test_commented_keras_h5_model_load_safe(self):
157 code = """
158 # model = keras.models.load_model(model_path)
159 """
160 assert not fires(code, "AI203")
161
162 def test_joblib_model_load_metadata(self):
163 rule = _ai_rule("AI204")
164 assert rule["severity"] == "High"
165 assert rule["cwe"] == "CWE-502"
166 assert rule["pattern"] == r"joblib\.load"
167
168 def test_joblib_model_load_fires(self):
169 code = """
170 model = joblib.load(model_path)
171 """
172 assert fires(code, "AI204")
173
174 def test_commented_joblib_model_load_safe(self):
175 code = """
176 # model = joblib.load(model_path)
177 """
178 assert not fires(code, "AI204")
179class TestAI202:
180 def test_rule_metadata(self):
181 rule = _ai_rule("AI202")

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected