Skip to content

Commit db2b81d

Browse files
committed
fix: Make Cassandra dependencies optional for CI testing
- Add optional import handling for cassandra-driver in all database modules - Skip Cassandra integration tests when driver not available - Create dummy classes to prevent import errors in CI environment - Ensures pytest can run without optional enterprise dependencies Resolves CI test failures due to missing Cassandra driver while maintaining full functionality when dependencies are available
1 parent f443a92 commit db2b81d

3 files changed

Lines changed: 36 additions & 5 deletions

File tree

src/database/cassandra_manager.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,24 @@
1010
from datetime import datetime
1111
from typing import Any, Dict, List, Optional
1212

13-
from cassandra.auth import PlainTextAuthProvider
14-
from cassandra.cluster import Cluster
13+
try:
14+
from cassandra.auth import PlainTextAuthProvider
15+
from cassandra.cluster import Cluster
16+
CASSANDRA_AVAILABLE = True
17+
except ImportError:
18+
# Cassandra driver not available - create dummy classes for testing
19+
CASSANDRA_AVAILABLE = False
20+
21+
class PlainTextAuthProvider:
22+
def __init__(self, *args, **kwargs):
23+
pass
24+
25+
class Cluster:
26+
def __init__(self, *args, **kwargs):
27+
pass
28+
29+
def connect(self):
30+
raise RuntimeError("Cassandra driver not installed")
1531

1632
from src.core.logger import logger
1733
from src.schemas.news import NewsArticle

src/database/cassandra_parser_manager.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,17 @@
77

88
from src.core.logger import logger
99
from src.core.parser_manager import ParserManager as BaseParserManager
10-
from src.database.cassandra_manager import CassandraConfig, CassandraManager
10+
11+
try:
12+
from src.database.cassandra_manager import CassandraConfig, CassandraManager, CASSANDRA_AVAILABLE
13+
except ImportError:
14+
CASSANDRA_AVAILABLE = False
15+
# Create dummy classes for when Cassandra is not available
16+
class CassandraConfig:
17+
pass
18+
class CassandraManager:
19+
pass
20+
1121
from src.schemas.news import NewsArticle
1222

1323

tests/test_cassandra_integration.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@
66

77
import pytest
88

9-
from src.database.cassandra_manager import CassandraConfig, CassandraManager
10-
from src.schemas.news import NewsArticle
9+
try:
10+
from src.database.cassandra_manager import CassandraConfig, CassandraManager, CASSANDRA_AVAILABLE
11+
from src.schemas.news import NewsArticle
12+
except ImportError:
13+
CASSANDRA_AVAILABLE = False
14+
pytest.skip("Cassandra driver not available", allow_module_level=True)
1115

1216

17+
@pytest.mark.skipif(not CASSANDRA_AVAILABLE, reason="Cassandra driver not installed")
1318
class TestCassandraManager:
1419
"""Test cases for Cassandra database manager."""
1520

0 commit comments

Comments
 (0)