Some checks failed
AITBC CI/CD Pipeline / lint-and-test (3.11) (push) Has been cancelled
AITBC CI/CD Pipeline / lint-and-test (3.12) (push) Has been cancelled
AITBC CI/CD Pipeline / lint-and-test (3.13) (push) Has been cancelled
AITBC CI/CD Pipeline / test-cli (push) Has been cancelled
AITBC CI/CD Pipeline / test-services (push) Has been cancelled
AITBC CI/CD Pipeline / test-production-services (push) Has been cancelled
AITBC CI/CD Pipeline / security-scan (push) Has been cancelled
AITBC CI/CD Pipeline / build (push) Has been cancelled
AITBC CI/CD Pipeline / deploy-staging (push) Has been cancelled
AITBC CI/CD Pipeline / deploy-production (push) Has been cancelled
AITBC CI/CD Pipeline / performance-test (push) Has been cancelled
AITBC CI/CD Pipeline / docs (push) Has been cancelled
AITBC CI/CD Pipeline / release (push) Has been cancelled
AITBC CI/CD Pipeline / notify (push) Has been cancelled
Security Scanning / Bandit Security Scan (apps/coordinator-api/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (cli/aitbc_cli) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-core/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-crypto/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-sdk/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (tests) (push) Has been cancelled
Security Scanning / CodeQL Security Analysis (javascript) (push) Has been cancelled
Security Scanning / CodeQL Security Analysis (python) (push) Has been cancelled
Security Scanning / Dependency Security Scan (push) Has been cancelled
Security Scanning / Container Security Scan (push) Has been cancelled
Security Scanning / OSSF Scorecard (push) Has been cancelled
Security Scanning / Security Summary Report (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.11) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.12) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.13) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-summary (push) Has been cancelled
- Remove debugging service documentation (DEBUgging_SERVICES.md) - Remove development logs policy and quick reference guides - Remove E2E test creation summary - Remove gift certificate example file - Remove GitHub pull summary documentation
29 lines
1.6 KiB
Python
Executable File
29 lines
1.6 KiB
Python
Executable File
import sys
|
|
from click.testing import CliRunner
|
|
from aitbc_cli.commands.node import node
|
|
from aitbc_cli.core.config import MultiChainConfig
|
|
from unittest.mock import patch, MagicMock
|
|
import sys
|
|
|
|
runner = CliRunner()
|
|
with patch('aitbc_cli.commands.node.load_multichain_config') as mock_load:
|
|
with patch('aitbc_cli.commands.node.get_default_node_config') as mock_default:
|
|
with patch('aitbc_cli.commands.node.add_node_config') as mock_add:
|
|
# The function does `from ..core.config import save_multichain_config`
|
|
# This evaluates to `aitbc_cli.core.config` because node.py is in `aitbc_cli.commands`
|
|
with patch('aitbc_cli.core.config.save_multichain_config') as mock_save:
|
|
# The issue with the previous run was not that save_multichain_config wasn't patched correctly.
|
|
# The issue is that click catches exceptions and prints the generic "Error adding node: ...".
|
|
# Wait, "Failed to save configuration" actually implies the unpatched save_multichain_config was CALLED!
|
|
|
|
# Let's mock at sys.modules level for Python relative imports
|
|
pass
|
|
|
|
with patch('aitbc_cli.commands.node.load_multichain_config') as mock_load:
|
|
with patch('aitbc_cli.commands.node.get_default_node_config') as mock_default:
|
|
with patch('aitbc_cli.commands.node.add_node_config') as mock_add:
|
|
# the easiest way is to patch it in the exact module it is executed
|
|
# OR we can just avoid testing the mock_save and let it save to a temp config!
|
|
# Let's check how config is loaded in node.py
|
|
pass
|