{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/mcp-servers\/mcp-db\/tests\/README.md",
"content": "# MCP-DB Test Suite\n\nModularisierte Test-Suite für den MCP-DB Server.\n\n## Struktur\n\n```\ntests\/\n├── conftest.py # Gemeinsame Fixtures (DB-Connections, Logger, etc.)\n├── test_validator.py # QueryValidator Tests (12 Tests, 119 LOC)\n├── test_db_operations.py # DB Operations Tests (10 Tests, 153 LOC)\n├── test_logging.py # Logging Tests (3 Tests, 68 LOC)\n└── test_config.py # Konfigurations Tests (5 Tests, 56 LOC)\n```\n\n**Total:** 30 Tests, 501 LOC (alle Module unter 200 LOC)\n\n## Installation\n\n```bash\ncd \/var\/www\/mcp-servers\/mcp-db\nsource venv\/bin\/activate\npip install -r requirements-test.txt\n```\n\n## Tests ausführen\n\n### Alle Tests\n```bash\npytest tests\/ -v\n```\n\n### Einzelne Test-Module\n```bash\npytest tests\/test_validator.py -v\npytest tests\/test_db_operations.py -v\npytest tests\/test_logging.py -v\npytest tests\/test_config.py -v\n```\n\n### Mit Coverage\n```bash\npytest tests\/ --cov=. --cov-report=term-missing\n```\n\n## Quality Checks\n\n```bash\n# Ruff Linting\nruff check tests\/\n\n# Ruff Formatting\nruff format tests\/ --check\n\n# Type Checking\nmypy tests\/ --ignore-missing-imports\n```\n\n## Test-Kategorien\n\n### 1. QueryValidator Tests (`test_validator.py`)\n- Gültige Queries\n- Blockierte Keywords (DROP, DELETE, INSERT, UPDATE, SLEEP, LOAD_FILE)\n- Datenbank-Validierung\n- Tabellen-Validierung\n- Query-Länge\n- max_rows Validierung\n\n### 2. DB Operations Tests (`test_db_operations.py`)\n- **DB_SELECT:** SELECT Queries, Prepared Statements, Limits\n- **DB_SCHEMA:** Schema-Abfragen, Datenbank-Zugriffsrechte\n- **DB_STATS:** Logging-Statistiken, Limit-Parameter\n\n### 3. Logging Tests (`test_logging.py`)\n- Success Logs\n- Denied Logs\n- Error Logs\n\n### 4. Config Tests (`test_config.py`)\n- ALLOWED_DATABASES\n- BLOCKED_KEYWORDS\n- MAX_QUERY_LENGTH\n- MAX_ROWS\n- ALLOWED_TABLES\n\n## Fixtures (conftest.py)\n\n- `db_connection` - Generische DB-Verbindung\n- `ki_protokoll_connection` - Verbindung zu ki_protokoll DB\n- `ki_system_connection` - Verbindung zu ki_system DB\n- `logger` - ProtokollLogger Instanz\n- `test_log_entry` - Test LogEntry (success)\n- `test_denied_log_entry` - Test LogEntry (denied)\n- `test_error_log_entry` - Test LogEntry (error)\n\n## Migration von test_all_functions.py\n\nDie alte Datei `test_all_functions.py` (742 LOC) wurde in 4 Module aufgeteilt:\n- Bessere Wartbarkeit\n- Klare Trennung der Verantwortlichkeiten\n- Wiederverwendbare Fixtures\n- Einhaltung der 200 LOC Regel\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/mcp-servers\/mcp-db\/tests\/README.md",
"content": "# MCP-DB Test Suite\n\nModularisierte Test-Suite für den MCP-DB Server.\n\n## Struktur\n\n```\ntests\/\n├── conftest.py # Gemeinsame Fixtures (DB-Connections, Logger, etc.)\n├── test_validator.py # QueryValidator Tests (12 Tests, 119 LOC)\n├── test_db_operations.py # DB Operations Tests (10 Tests, 153 LOC)\n├── test_logging.py # Logging Tests (3 Tests, 68 LOC)\n└── test_config.py # Konfigurations Tests (5 Tests, 56 LOC)\n```\n\n**Total:** 30 Tests, 501 LOC (alle Module unter 200 LOC)\n\n## Installation\n\n```bash\ncd \/var\/www\/mcp-servers\/mcp-db\nsource venv\/bin\/activate\npip install -r requirements-test.txt\n```\n\n## Tests ausführen\n\n### Alle Tests\n```bash\npytest tests\/ -v\n```\n\n### Einzelne Test-Module\n```bash\npytest tests\/test_validator.py -v\npytest tests\/test_db_operations.py -v\npytest tests\/test_logging.py -v\npytest tests\/test_config.py -v\n```\n\n### Mit Coverage\n```bash\npytest tests\/ --cov=. --cov-report=term-missing\n```\n\n## Quality Checks\n\n```bash\n# Ruff Linting\nruff check tests\/\n\n# Ruff Formatting\nruff format tests\/ --check\n\n# Type Checking\nmypy tests\/ --ignore-missing-imports\n```\n\n## Test-Kategorien\n\n### 1. QueryValidator Tests (`test_validator.py`)\n- Gültige Queries\n- Blockierte Keywords (DROP, DELETE, INSERT, UPDATE, SLEEP, LOAD_FILE)\n- Datenbank-Validierung\n- Tabellen-Validierung\n- Query-Länge\n- max_rows Validierung\n\n### 2. DB Operations Tests (`test_db_operations.py`)\n- **DB_SELECT:** SELECT Queries, Prepared Statements, Limits\n- **DB_SCHEMA:** Schema-Abfragen, Datenbank-Zugriffsrechte\n- **DB_STATS:** Logging-Statistiken, Limit-Parameter\n\n### 3. Logging Tests (`test_logging.py`)\n- Success Logs\n- Denied Logs\n- Error Logs\n\n### 4. Config Tests (`test_config.py`)\n- ALLOWED_DATABASES\n- BLOCKED_KEYWORDS\n- MAX_QUERY_LENGTH\n- MAX_ROWS\n- ALLOWED_TABLES\n\n## Fixtures (conftest.py)\n\n- `db_connection` - Generische DB-Verbindung\n- `ki_protokoll_connection` - Verbindung zu ki_protokoll DB\n- `ki_system_connection` - Verbindung zu ki_system DB\n- `logger` - ProtokollLogger Instanz\n- `test_log_entry` - Test LogEntry (success)\n- `test_denied_log_entry` - Test LogEntry (denied)\n- `test_error_log_entry` - Test LogEntry (error)\n\n## Migration von test_all_functions.py\n\nDie alte Datei `test_all_functions.py` (742 LOC) wurde in 4 Module aufgeteilt:\n- Bessere Wartbarkeit\n- Klare Trennung der Verantwortlichkeiten\n- Wiederverwendbare Fixtures\n- Einhaltung der 200 LOC Regel\n",
"structuredPatch": [],
"originalFile": null
}
}