test_dms_deploy_routes.py 1.7 KB

123456789101112131415161718192021222324252627282930313233
  1. """Deployment connection isolation and direct split-port routes."""
  2. import os
  3. import unittest
  4. from unittest.mock import patch
  5. from scripts.deploy import apply_api_env_policy
  6. from src.step5_session_analysis.dms import DmsConfig, connection_urls
  7. class DmsDeployRoutesTests(unittest.TestCase):
  8. def test_routes_do_not_depend_on_host_or_specific_ports(self):
  9. for host in ('http://example.invalid', 'https://[::1]'):
  10. for suffix in ('', '/'):
  11. config = DmsConfig(host + suffix, auth_port=8888, dms_port=10081)
  12. self.assertEqual(connection_urls(config),
  13. (host + ':10081/dms', host + ':8888/oauth/api/user/login'))
  14. config = DmsConfig(host + '/proxy_dms', auth_port=8888, dms_port=10081)
  15. self.assertEqual(connection_urls(config),
  16. (host + ':10081/proxy_dms', host + ':8888/proxy_oauth/user/login'))
  17. def test_env_policy_clears_connections_but_preserves_scope_and_mapping(self):
  18. keys = ('DMS_BASE_URL', 'DMS_LOGIN_URL', 'AUTH_PORT', 'DMS_PORT',
  19. 'DMS_USERNAME', 'DMS_PASSWORD', 'DMS_TOKEN')
  20. env = dict.fromkeys(keys, 'synthetic')
  21. env.update(DMS_STRICT_SCOPE='true', DMS_RECORDS_COLUMN_ID='9999')
  22. with patch.dict(os.environ, env, clear=True):
  23. apply_api_env_policy()
  24. self.assertTrue(all(key in os.environ for key in keys))
  25. os.environ['DEPLOY_API_ENV_FILE_ONLY'] = '1'
  26. apply_api_env_policy()
  27. self.assertTrue(all(key not in os.environ for key in keys))
  28. self.assertEqual(os.environ['DMS_STRICT_SCOPE'], 'true')
  29. self.assertEqual(os.environ['DMS_RECORDS_COLUMN_ID'], '9999')