| 123456789101112131415161718192021222324252627282930313233 |
- """Deployment connection isolation and direct split-port routes."""
- import os
- import unittest
- from unittest.mock import patch
- from scripts.deploy import apply_api_env_policy
- from src.step5_session_analysis.dms import DmsConfig, connection_urls
- class DmsDeployRoutesTests(unittest.TestCase):
- def test_routes_do_not_depend_on_host_or_specific_ports(self):
- for host in ('http://example.invalid', 'https://[::1]'):
- for suffix in ('', '/'):
- config = DmsConfig(host + suffix, auth_port=8888, dms_port=10081)
- self.assertEqual(connection_urls(config),
- (host + ':10081/dms', host + ':8888/oauth/api/user/login'))
- config = DmsConfig(host + '/proxy_dms', auth_port=8888, dms_port=10081)
- self.assertEqual(connection_urls(config),
- (host + ':10081/proxy_dms', host + ':8888/proxy_oauth/user/login'))
- def test_env_policy_clears_connections_but_preserves_scope_and_mapping(self):
- keys = ('DMS_BASE_URL', 'DMS_LOGIN_URL', 'AUTH_PORT', 'DMS_PORT',
- 'DMS_USERNAME', 'DMS_PASSWORD', 'DMS_TOKEN')
- env = dict.fromkeys(keys, 'synthetic')
- env.update(DMS_STRICT_SCOPE='true', DMS_RECORDS_COLUMN_ID='9999')
- with patch.dict(os.environ, env, clear=True):
- apply_api_env_policy()
- self.assertTrue(all(key in os.environ for key in keys))
- os.environ['DEPLOY_API_ENV_FILE_ONLY'] = '1'
- apply_api_env_policy()
- self.assertTrue(all(key not in os.environ for key in keys))
- self.assertEqual(os.environ['DMS_STRICT_SCOPE'], 'true')
- self.assertEqual(os.environ['DMS_RECORDS_COLUMN_ID'], '9999')
|