test_platform_config.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import os
  2. import sys
  3. from typing import Optional
  4. import pytest
  5. PLUGIN_ROOT = os.path.abspath(os.path.dirname(__file__))
  6. sys.path.insert(0, PLUGIN_ROOT)
  7. sys.path.insert(0, "/opt/hermes")
  8. sys.path.insert(0, "/root/.hermes/plugins/platforms/chatto")
  9. from platform_config import (
  10. _get_env_or_extra_str,
  11. _get_env_or_extra_truthy,
  12. _split_str_to_list,
  13. _get_env_or_extra_list,
  14. )
  15. class TestPlatformConfigHelpers:
  16. """Test Chatto configuration helper functions."""
  17. def test_get_env_or_extra_str_prefers_env(self, monkeypatch):
  18. monkeypatch.setenv("CHATTO_TEST", " env-value ")
  19. assert _get_env_or_extra_str("CHATTO_TEST", "extra-value") == "env-value"
  20. def test_get_env_or_extra_str_uses_extra_when_no_env(self, monkeypatch):
  21. monkeypatch.delenv("CHATTO_TEST", raising=False)
  22. assert _get_env_or_extra_str("CHATTO_TEST", " extra-value ") == "extra-value"
  23. def test_get_env_or_extra_str_returns_none_when_missing(self, monkeypatch):
  24. monkeypatch.delenv("CHATTO_TEST", raising=False)
  25. assert _get_env_or_extra_str("CHATTO_TEST", None) is None
  26. def test_get_env_or_extra_truthy_parses_truthy_values(self, monkeypatch):
  27. monkeypatch.setenv("CHATTO_TEST", " yes ")
  28. assert _get_env_or_extra_truthy("CHATTO_TEST", None) is True
  29. def test_get_env_or_extra_truthy_uses_extra_when_no_env(self, monkeypatch):
  30. monkeypatch.delenv("CHATTO_TEST", raising=False)
  31. assert _get_env_or_extra_truthy("CHATTO_TEST", " true ") is True
  32. def test_get_env_or_extra_truthy_uses_default_false(self, monkeypatch):
  33. monkeypatch.delenv("CHATTO_TEST", raising=False)
  34. assert _get_env_or_extra_truthy("CHATTO_TEST", "false") is False
  35. def test_split_str_to_list_handles_comma_separated_values(self):
  36. assert _split_str_to_list("a,b, c ,d") == ["a", "b", "c", "d"]
  37. def test_get_env_or_extra_list_prefers_env(self, monkeypatch):
  38. monkeypatch.setenv("CHATTO_TEST", " one,two , three")
  39. assert _get_env_or_extra_list("CHATTO_TEST", ["ignored", "list"]) == ["one", "two", "three"]
  40. def test_get_env_or_extra_list_uses_extra_list(self, monkeypatch):
  41. monkeypatch.delenv("CHATTO_TEST", raising=False)
  42. assert _get_env_or_extra_list("CHATTO_TEST", ["a", " b "]) == ["a", "b"]
  43. def test_get_env_or_extra_list_uses_extra_string(self, monkeypatch):
  44. monkeypatch.delenv("CHATTO_TEST", raising=False)
  45. assert _get_env_or_extra_list("CHATTO_TEST", "x,y") == ["x", "y"]
  46. def test_get_env_or_extra_list_returns_empty_for_none(self, monkeypatch):
  47. monkeypatch.delenv("CHATTO_TEST", raising=False)
  48. assert _get_env_or_extra_list("CHATTO_TEST", None) == []