test_mysql_sessions.py 944 B

123456789101112131415161718192021
  1. from zbt.core.config import Settings
  2. from zbt.infrastructure.mysql.sessions import DatabaseName, build_mysql_url
  3. def test_mysql_urls_target_each_whitelisted_database_and_escape_credentials() -> None:
  4. settings = Settings(
  5. mysql_user="zbt_s3",
  6. mysql_password="p@ss/word",
  7. mysql_core_database="insurance_s3_test_core",
  8. mysql_agent_database="insurance_s3_test_agent",
  9. mysql_analytics_database="insurance_s3_test_analytics",
  10. redis_prefix="ins:s3:test:db-contract:",
  11. )
  12. assert build_mysql_url(settings, DatabaseName.CORE).render_as_string(hide_password=False) == (
  13. "mysql+pymysql://zbt_s3:p%40ss%2Fword@127.0.0.1:3306/insurance_s3_test_core?charset=utf8mb4"
  14. )
  15. assert build_mysql_url(settings, DatabaseName.AGENT).database == ("insurance_s3_test_agent")
  16. assert build_mysql_url(settings, DatabaseName.ANALYTICS).database == (
  17. "insurance_s3_test_analytics"
  18. )