test_slack.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import pytest
  2. from embedchain.loaders.slack import SlackLoader
  3. @pytest.fixture
  4. def slack_loader(mocker, monkeypatch):
  5. # Mocking necessary dependencies
  6. mocker.patch("slack_sdk.WebClient")
  7. mocker.patch("ssl.create_default_context")
  8. mocker.patch("certifi.where")
  9. monkeypatch.setenv("SLACK_USER_TOKEN", "slack_user_token")
  10. return SlackLoader()
  11. def test_slack_loader_initialization(slack_loader):
  12. assert slack_loader.client is not None
  13. assert slack_loader.config == {"base_url": "https://www.slack.com/api/"}
  14. def test_slack_loader_setup_loader(slack_loader):
  15. slack_loader._setup_loader({"base_url": "https://custom.slack.api/"})
  16. assert slack_loader.client is not None
  17. def test_slack_loader_check_query(slack_loader):
  18. valid_json_query = "test_query"
  19. invalid_query = 123
  20. slack_loader._check_query(valid_json_query)
  21. with pytest.raises(ValueError):
  22. slack_loader._check_query(invalid_query)
  23. def test_slack_loader_load_data(slack_loader, mocker):
  24. valid_json_query = "in:random"
  25. mocker.patch.object(slack_loader.client, "search_messages", return_value={"messages": {}})
  26. result = slack_loader.load_data(valid_json_query)
  27. assert "doc_id" in result
  28. assert "data" in result