fix: add Redis installation step and improve aitbc_crypto mocking in tests
- Added Redis server installation step in production-tests.yml workflow - Checks if Redis binaries are already available before installing - Installs redis-server package if needed - Improved aitbc_crypto mocking in conftest.py - Try importing real aitbc_crypto module first before mocking - Only mock functions if they don't already exist - Prevents overriding real implementations when aitbc_crypto is available
This commit is contained in:
@@ -52,6 +52,16 @@ jobs:
|
|||||||
# Ensure standard directories exist
|
# Ensure standard directories exist
|
||||||
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc
|
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc
|
||||||
|
|
||||||
|
- name: Ensure Redis server
|
||||||
|
run: |
|
||||||
|
if command -v redis-server >/dev/null 2>&1 && command -v redis-cli >/dev/null 2>&1; then
|
||||||
|
echo "✅ Redis binaries already available"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install -y redis-server
|
||||||
|
|
||||||
- name: Start Redis
|
- name: Start Redis
|
||||||
run: |
|
run: |
|
||||||
redis-server --daemonize yes --port 6379
|
redis-server --daemonize yes --port 6379
|
||||||
|
|||||||
@@ -63,9 +63,14 @@ sys.modules['slowapi'] = Mock()
|
|||||||
sys.modules['slowapi.util'] = Mock()
|
sys.modules['slowapi.util'] = Mock()
|
||||||
sys.modules['slowapi.limiter'] = Mock()
|
sys.modules['slowapi.limiter'] = Mock()
|
||||||
sys.modules['web3'] = Mock()
|
sys.modules['web3'] = Mock()
|
||||||
sys.modules['aitbc_crypto'] = Mock()
|
|
||||||
|
|
||||||
# Mock aitbc_crypto functions
|
# Mock aitbc_crypto functions
|
||||||
|
try:
|
||||||
|
import aitbc_crypto as _aitbc_crypto
|
||||||
|
except ImportError:
|
||||||
|
_aitbc_crypto = Mock()
|
||||||
|
sys.modules['aitbc_crypto'] = _aitbc_crypto
|
||||||
|
|
||||||
def mock_encrypt_data(data, key):
|
def mock_encrypt_data(data, key):
|
||||||
return f"encrypted_{data}"
|
return f"encrypted_{data}"
|
||||||
def mock_decrypt_data(data, key):
|
def mock_decrypt_data(data, key):
|
||||||
@@ -73,9 +78,12 @@ def mock_decrypt_data(data, key):
|
|||||||
def mock_generate_viewing_key():
|
def mock_generate_viewing_key():
|
||||||
return "test_viewing_key"
|
return "test_viewing_key"
|
||||||
|
|
||||||
sys.modules['aitbc_crypto'].encrypt_data = mock_encrypt_data
|
if not hasattr(_aitbc_crypto, 'encrypt_data'):
|
||||||
sys.modules['aitbc_crypto'].decrypt_data = mock_decrypt_data
|
_aitbc_crypto.encrypt_data = mock_encrypt_data
|
||||||
sys.modules['aitbc_crypto'].generate_viewing_key = mock_generate_viewing_key
|
if not hasattr(_aitbc_crypto, 'decrypt_data'):
|
||||||
|
_aitbc_crypto.decrypt_data = mock_decrypt_data
|
||||||
|
if not hasattr(_aitbc_crypto, 'generate_viewing_key'):
|
||||||
|
_aitbc_crypto.generate_viewing_key = mock_generate_viewing_key
|
||||||
|
|
||||||
# Common fixtures for all test types
|
# Common fixtures for all test types
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|||||||
Reference in New Issue
Block a user