test_env_config.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import sys
  2. import os
  3. sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir))
  4. from env_config import read_env_config
  5. def test_openai_simple():
  6. """
  7. Simple OpenAI only env vars. Non OpenAI related env vars are ignored.
  8. """
  9. env = {
  10. 'HOSTNAME': 'localhost',
  11. 'OPENAI_API_KEY': '<key_1>',
  12. }
  13. config = read_env_config("COMPLETION", env)
  14. assert 'HOSTNAME' not in config
  15. assert config['OPENAI_API_KEY'] == '<key_1>'
  16. def test_azure_simple():
  17. """
  18. Simple Azure OpenAI only env vars. Non OpenAI related env vars are ignored.
  19. """
  20. env = {
  21. 'HOSTNAME': 'localhost',
  22. 'AZURE_OPENAI_ENDPOINT': '<endpoint_1>',
  23. 'AZURE_OPENAI_API_KEY': '<key_1>',
  24. 'OPENAI_API_VERSION': '<version_1>',
  25. }
  26. config = read_env_config("COMPLETION", env)
  27. assert 'HOSTNAME' not in config
  28. assert config['AZURE_OPENAI_ENDPOINT'] == '<endpoint_1>'
  29. assert config['AZURE_OPENAI_API_KEY'] == '<key_1>'
  30. assert config['OPENAI_API_VERSION'] == '<version_1>'
  31. def test_azure_override():
  32. """
  33. Test that the completion config overrides the base config and that the embedding config doesn't
  34. interfere and that non OpenAI related env vars are ignored.
  35. """
  36. env = {
  37. 'HOSTNAME': 'localhost',
  38. 'AZURE_OPENAI_ENDPOINT': '<endpoint_1>',
  39. 'AZURE_OPENAI_API_KEY': '<key_1>',
  40. 'OPENAI_API_VERSION': '<version_1>',
  41. 'COMPLETION_AZURE_OPENAI_ENDPOINT': '<endpoint_2>',
  42. 'COMPLETION_AZURE_OPENAI_API_KEY': '<key_2>',
  43. 'EMBEDDING_AZURE_OPENAI_ENDPOINT': '<endpoint_3>',
  44. 'EMBEDDING_AZURE_OPENAI_API_KEY': '<key_3>',
  45. }
  46. comp_config = read_env_config("COMPLETION", env)
  47. assert 'HOSTNAME' not in comp_config
  48. assert comp_config['AZURE_OPENAI_ENDPOINT'] == '<endpoint_2>'
  49. assert comp_config['AZURE_OPENAI_API_KEY'] == '<key_2>'
  50. assert comp_config['OPENAI_API_VERSION'] == '<version_1>'
  51. emb_config = read_env_config("EMBEDDING", env)
  52. assert 'HOSTNAME' not in emb_config
  53. assert emb_config['AZURE_OPENAI_ENDPOINT'] == '<endpoint_3>'
  54. assert emb_config['AZURE_OPENAI_API_KEY'] == '<key_3>'
  55. assert emb_config['OPENAI_API_VERSION'] == '<version_1>'
  56. def test_openai_override():
  57. """
  58. Test that the completion config overrides the base config and that the embedding config doesn't
  59. interfere and that non OpenAI related env vars are ignored.
  60. """
  61. env = {
  62. 'HOSTNAME': 'localhost',
  63. 'OPENAI_ENDPOINT': '<endpoint_1>',
  64. 'OPENAI_API_KEY': '<key_1>',
  65. 'OPENAI_API_VERSION': '<version_1>',
  66. 'COMPLETION_OPENAI_ENDPOINT': '<endpoint_2>',
  67. 'COMPLETION_OPENAI_API_KEY': '<key_2>',
  68. 'EMBEDDING_OPENAI_ENDPOINT': '<endpoint_3>',
  69. 'EMBEDDING_OPENAI_API_KEY': '<key_3>',
  70. }
  71. comp_config = read_env_config("COMPLETION", env)
  72. assert 'HOSTNAME' not in comp_config
  73. assert comp_config['OPENAI_ENDPOINT'] == '<endpoint_2>'
  74. assert comp_config['OPENAI_API_KEY'] == '<key_2>'
  75. assert comp_config['OPENAI_API_VERSION'] == '<version_1>'
  76. emb_config = read_env_config("EMBEDDING", env)
  77. assert 'HOSTNAME' not in emb_config
  78. assert emb_config['OPENAI_ENDPOINT'] == '<endpoint_3>'
  79. assert emb_config['OPENAI_API_KEY'] == '<key_3>'
  80. assert emb_config['OPENAI_API_VERSION'] == '<version_1>'