92 lines
3.1 KiB
Python
92 lines
3.1 KiB
Python
import pytest
|
|
from code_privacy_shield.patterns import PatternLibrary
|
|
|
|
|
|
class TestPatternLibrary:
|
|
def setup_method(self):
|
|
self.library = PatternLibrary()
|
|
|
|
def test_api_key_patterns_compile(self):
|
|
patterns = self.library.get_api_key_patterns()
|
|
assert len(patterns) > 0
|
|
for pattern, name in patterns:
|
|
assert pattern is not None
|
|
assert name is not None
|
|
|
|
def test_pii_patterns_compile(self):
|
|
patterns = self.library.get_pii_patterns()
|
|
assert len(patterns) > 0
|
|
for pattern, name in patterns:
|
|
assert pattern is not None
|
|
assert name is not None
|
|
|
|
def test_database_patterns_compile(self):
|
|
patterns = self.library.get_database_patterns()
|
|
assert len(patterns) > 0
|
|
for pattern, name in patterns:
|
|
assert pattern is not None
|
|
assert name is not None
|
|
|
|
def test_env_var_patterns_compile(self):
|
|
patterns = self.library.get_env_var_patterns()
|
|
assert len(patterns) > 0
|
|
for pattern, name in patterns:
|
|
assert pattern is not None
|
|
assert name is not None
|
|
|
|
def test_ip_patterns_compile(self):
|
|
patterns = self.library.get_ip_patterns()
|
|
assert len(patterns) > 0
|
|
for pattern, name in patterns:
|
|
assert pattern is not None
|
|
assert name is not None
|
|
|
|
def test_authorization_patterns_compile(self):
|
|
patterns = self.library.get_authorization_patterns()
|
|
assert len(patterns) > 0
|
|
for pattern, name in patterns:
|
|
assert pattern is not None
|
|
assert name is not None
|
|
|
|
def test_openai_api_key_detection(self):
|
|
patterns = self.library.get_api_key_patterns()
|
|
test_key = "sk-abc123def456ghi789jkl012mno345pq"
|
|
found = False
|
|
for pattern, name in patterns:
|
|
match = pattern.search(test_key)
|
|
if match and name == "OpenAI API Key":
|
|
found = True
|
|
break
|
|
assert found
|
|
|
|
def test_email_detection(self):
|
|
patterns = self.library.get_pii_patterns()
|
|
test_email = "user@example.com"
|
|
found = False
|
|
for pattern, name in patterns:
|
|
match = pattern.search(test_email)
|
|
if match and name == "Email Address":
|
|
found = True
|
|
break
|
|
assert found
|
|
|
|
def test_postgresql_connection_detection(self):
|
|
patterns = self.library.get_database_patterns()
|
|
test_conn = "postgresql://user:password@localhost:5432/mydb"
|
|
found = False
|
|
for pattern, name in patterns:
|
|
match = pattern.search(test_conn)
|
|
if match and name == "PostgreSQL Connection":
|
|
found = True
|
|
break
|
|
assert found
|
|
|
|
def test_get_all_patterns(self):
|
|
all_patterns = self.library.get_all_patterns()
|
|
assert "api_keys" in all_patterns
|
|
assert "pii" in all_patterns
|
|
assert "database" in all_patterns
|
|
assert "env_var" in all_patterns
|
|
assert "ip" in all_patterns
|
|
assert "authorization" in all_patterns
|