Files
Marius Mutu a7a1bef375 Add missing test files and update .gitignore to allow test files
This commit addresses the overly restrictive .gitignore pattern that
was excluding all test files (test_*.py), including legitimate pytest
and unittest test suites essential for code quality and CI/CD.

Changes to .gitignore:
- Added negation patterns !**/tests/test_*.py and !**/test_*.py
  to allow proper test files while still blocking temporary scripts
- This enables pytest test suites to be tracked by git

Added test files (17 files):

Telegram Bot Tests (15 files):
- reports-app/telegram-bot/tests/test_auth.py
  Tests for authentication and account linking flow
- reports-app/telegram-bot/tests/test_callbacks.py
  Tests for callback query handlers
- reports-app/telegram-bot/tests/test_formatters.py
  Tests for message formatting utilities
- reports-app/telegram-bot/tests/test_formatters_extended.py
  Extended formatter tests
- reports-app/telegram-bot/tests/test_handlers_menu.py
  Tests for menu handlers
- reports-app/telegram-bot/tests/test_helpers.py
  Tests for helper functions
- reports-app/telegram-bot/tests/test_helpers_extended.py
  Extended helper tests
- reports-app/telegram-bot/tests/test_helpers_real.py
  Real integration tests for helpers
- reports-app/telegram-bot/tests/test_helpers_real_simple.py
  Simplified integration tests
- reports-app/telegram-bot/tests/test_login_flow.py
  Complete login flow integration tests
- reports-app/telegram-bot/tests/test_menus.py
  Menu system tests
- reports-app/telegram-bot/tests/test_session_company.py
  Session and company management tests
- reports-app/telegram-bot/test_claude_integration.py
  Manual integration test (Claude AI)
- reports-app/telegram-bot/test_claude_response.py
  Response formatting test
- reports-app/telegram-bot/test_db.py
  Database operations manual test

Shared Module Tests (2 files):
- shared/auth/test_auth.py
  Authentication system tests
- shared/database/test_pool.py
  Oracle connection pool tests

Security verification:
 All test files use mock objects, fixtures, and environment variables
 No hardcoded credentials or secrets found
 Safe for version control

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 15:09:43 +03:00

69 lines
2.4 KiB
Python

"""
Test script pentru verificarea conexiunii Oracle pool
"""
import asyncio
import sys
import os
from datetime import datetime
# Load environment variables
try:
from dotenv import load_dotenv
# Load .env from roa2web root directory
env_path = os.path.join(os.path.dirname(__file__), '../../.env')
load_dotenv(env_path)
print(f"📄 Loaded environment from: {env_path}")
except ImportError:
print("⚠️ python-dotenv not available, using system environment variables")
# Adăugare path pentru shared modules
sys.path.append(os.path.dirname(__file__))
from oracle_pool import oracle_pool
async def test_oracle_pool():
"""Test simplu pentru verificarea pool-ului Oracle"""
print("🔄 Testing Oracle connection pool...")
try:
# Inițializare pool
print("📊 Initializing Oracle pool...")
await oracle_pool.initialize()
print("✅ Pool initialized successfully")
# Test conexiune
print("🔍 Testing database connection...")
async with oracle_pool.get_connection() as conn:
with conn.cursor() as cursor:
cursor.execute("SELECT 1 FROM DUAL")
result = cursor.fetchone()
print(f"✅ Database connection test successful: {result}")
print("🎯 Testing connection pool info...")
if oracle_pool._pool:
print(f"📈 Pool connections opened: {oracle_pool._pool.opened}")
print(f"📊 Pool connections busy: {oracle_pool._pool.busy}")
# Cleanup
print("🧹 Closing pool...")
await oracle_pool.close_pool()
print("✅ Pool closed successfully")
print("\n🎉 All tests passed! Oracle pool is working correctly.")
except Exception as e:
print(f"❌ Error testing Oracle pool: {str(e)}")
print(f"💡 Make sure environment variables are set:")
print(f" - ORACLE_USER: {'✅ SET' if os.getenv('ORACLE_USER') else '❌ NOT SET'}")
print(f" - ORACLE_PASSWORD: {'✅ SET' if os.getenv('ORACLE_PASSWORD') else '❌ NOT SET'}")
print(f" - ORACLE_DSN: {'✅ SET' if os.getenv('ORACLE_DSN') else '❌ NOT SET'}")
return False
return True
if __name__ == "__main__":
print(f"🚀 ROA2WEB Oracle Pool Test - {datetime.now()}")
print("=" * 50)
success = asyncio.run(test_oracle_pool())
sys.exit(0 if success else 1)