mirror of
https://github.com/msoedov/agentic_security.git
synced 2026-06-29 00:29:56 +02:00
fix(pc):
This commit is contained in:
@@ -56,16 +56,20 @@ class TestRulesToDataset:
|
||||
class TestLoadRulesAsDataset:
|
||||
def test_basic_load(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
(Path(tmpdir) / "rule1.yaml").write_text("""
|
||||
(Path(tmpdir) / "rule1.yaml").write_text(
|
||||
"""
|
||||
name: test1
|
||||
type: jailbreak
|
||||
prompt: Jailbreak prompt
|
||||
""")
|
||||
(Path(tmpdir) / "rule2.yaml").write_text("""
|
||||
"""
|
||||
)
|
||||
(Path(tmpdir) / "rule2.yaml").write_text(
|
||||
"""
|
||||
name: test2
|
||||
type: harmful
|
||||
prompt: Harmful prompt
|
||||
""")
|
||||
"""
|
||||
)
|
||||
dataset = load_rules_as_dataset(tmpdir)
|
||||
assert len(dataset.prompts) == 2
|
||||
|
||||
|
||||
@@ -77,15 +77,15 @@ severity: high
|
||||
|
||||
def test_load_rule_from_file(self):
|
||||
loader = RuleLoader()
|
||||
with tempfile.NamedTemporaryFile(
|
||||
mode="w", suffix=".yaml", delete=False
|
||||
) as f:
|
||||
f.write("""
|
||||
with tempfile.NamedTemporaryFile(mode="w", suffix=".yaml", delete=False) as f:
|
||||
f.write(
|
||||
"""
|
||||
name: file_test
|
||||
type: harmful
|
||||
severity: medium
|
||||
prompt: Test prompt from file
|
||||
""")
|
||||
"""
|
||||
)
|
||||
f.flush()
|
||||
rule = loader.load_rule_from_file(f.name)
|
||||
|
||||
@@ -96,9 +96,7 @@ prompt: Test prompt from file
|
||||
|
||||
def test_load_rule_from_file_wrong_extension(self):
|
||||
loader = RuleLoader()
|
||||
with tempfile.NamedTemporaryFile(
|
||||
mode="w", suffix=".txt", delete=False
|
||||
) as f:
|
||||
with tempfile.NamedTemporaryFile(mode="w", suffix=".txt", delete=False) as f:
|
||||
f.write("name: test\nprompt: test")
|
||||
f.flush()
|
||||
rule = loader.load_rule_from_file(f.name)
|
||||
@@ -110,16 +108,20 @@ prompt: Test prompt from file
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
rule1_path = Path(tmpdir) / "rule1.yaml"
|
||||
rule2_path = Path(tmpdir) / "rule2.yml"
|
||||
rule1_path.write_text("""
|
||||
rule1_path.write_text(
|
||||
"""
|
||||
name: rule1
|
||||
type: jailbreak
|
||||
prompt: First rule
|
||||
""")
|
||||
rule2_path.write_text("""
|
||||
"""
|
||||
)
|
||||
rule2_path.write_text(
|
||||
"""
|
||||
name: rule2
|
||||
type: harmful
|
||||
prompt: Second rule
|
||||
""")
|
||||
"""
|
||||
)
|
||||
loader = RuleLoader()
|
||||
rules = loader.load_rules_from_directory(tmpdir)
|
||||
|
||||
|
||||
@@ -87,7 +87,12 @@ class TestAttackRule:
|
||||
rule = AttackRule(name="test", type="jailbreak", prompt="Test")
|
||||
result = rule.to_dict()
|
||||
assert result == snapshot(
|
||||
{"name": "test", "type": "jailbreak", "prompt": "Test", "severity": "medium"}
|
||||
{
|
||||
"name": "test",
|
||||
"type": "jailbreak",
|
||||
"prompt": "Test",
|
||||
"severity": "medium",
|
||||
}
|
||||
)
|
||||
|
||||
def test_render_prompt_no_variables(self):
|
||||
|
||||
Reference in New Issue
Block a user