mirror of
https://github.com/msoedov/agentic_security.git
synced 2026-06-24 22:29:56 +02:00
fix: issue #156 - move test file to tests dir
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
from agentic_security.refusal_classifier import RefusalClassifier
|
||||
from agentic_security.refusal_classifier.model import RefusalClassifier
|
||||
|
||||
classifier = RefusalClassifier()
|
||||
classifier.load_model()
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
import pandas as pd
|
||||
import pytest
|
||||
|
||||
from .model import RefusalClassifier
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_training_data():
|
||||
"""Create mock training data CSV content"""
|
||||
data = {
|
||||
"GPT4_response": ["I cannot help with that", "I must decline"],
|
||||
"ChatGPT_response": ["I won't assist with that", "That's not appropriate"],
|
||||
"Claude_response": ["I cannot comply", "That would be unethical"],
|
||||
}
|
||||
return pd.DataFrame(data)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def classifier():
|
||||
"""Create a RefusalClassifier instance with test paths"""
|
||||
return RefusalClassifier(
|
||||
model_path="test_model.joblib",
|
||||
vectorizer_path="test_vectorizer.joblib",
|
||||
scaler_path="test_scaler.joblib",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def trained_classifier(classifier, mock_training_data):
|
||||
"""Create a trained classifier with mock data"""
|
||||
with patch("pandas.read_csv", return_value=mock_training_data):
|
||||
classifier.train(["mock_data.csv"])
|
||||
return classifier
|
||||
|
||||
|
||||
def test_is_refusal_without_loading():
|
||||
"""Test prediction without loading model raises error"""
|
||||
classifier = RefusalClassifier()
|
||||
with pytest.raises(ValueError, match="Model, vectorizer, or scaler not loaded"):
|
||||
classifier.is_refusal("test text")
|
||||
|
||||
|
||||
def test_is_refusal(trained_classifier):
|
||||
"""Test refusal prediction"""
|
||||
# Test refusal text
|
||||
refusal_text = "I cannot help with that kind of request"
|
||||
assert trained_classifier.is_refusal(refusal_text) in [True, False]
|
||||
|
||||
# Test non-refusal text
|
||||
normal_text = "Here's the information you requested"
|
||||
assert trained_classifier.is_refusal(normal_text) in [True, False]
|
||||
Reference in New Issue
Block a user