Skip to content

Commit 49b70ea

Browse files
committed
Add some basic tests
1 parent 7608c81 commit 49b70ea

File tree

1 file changed

+62
-2
lines changed

1 file changed

+62
-2
lines changed
Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,68 @@
1+
import os
2+
from collections.abc import Generator
3+
from unittest.mock import MagicMock
4+
15
import pytest
6+
from slack_sdk import WebClient
7+
8+
from onyx.connectors.credentials_provider import OnyxStaticCredentialsProvider
9+
from onyx.connectors.slack.connector import SlackConnector
10+
from shared_configs.contextvars import get_current_tenant_id
11+
12+
13+
@pytest.fixture
14+
def mock_slack_client() -> MagicMock:
15+
mock = MagicMock(spec=WebClient)
16+
return mock
217

318

419
@pytest.fixture
5-
def slack_connector(): ...
20+
def slack_connector(
21+
mock_slack_client: MagicMock,
22+
slack_credentials_json: OnyxStaticCredentialsProvider,
23+
) -> Generator[SlackConnector]:
24+
connector = SlackConnector(
25+
channel_regex_enabled=False,
26+
)
27+
connector.client = mock_slack_client
28+
connector.set_credentials_provider(credentials_provider=slack_credentials_json)
29+
yield connector
30+
31+
32+
@pytest.fixture
33+
def slack_credentials_json() -> OnyxStaticCredentialsProvider:
34+
return OnyxStaticCredentialsProvider(
35+
tenant_id=get_current_tenant_id(),
36+
connector_name="slack",
37+
credential_json={
38+
"slack_bot_token": os.environ["SLACK_BOT_TOKEN"],
39+
},
40+
)
41+
42+
43+
def test_validate_slack_connector_settings(
44+
slack_connector: SlackConnector,
45+
slack_credentials_json: OnyxStaticCredentialsProvider,
46+
) -> None:
47+
slack_connector.validate_connector_settings()
648

749

8-
def test_slack_connector() -> None: ...
50+
@pytest.mark.parametrize(
51+
"channels",
52+
[
53+
# empty
54+
[],
55+
# duplicates w/ and w/o preceding hashtag
56+
["danswerbot", "#danswerbot"],
57+
],
58+
)
59+
def test_indexing_channel(
60+
slack_connector: SlackConnector,
61+
channels: list[str],
62+
slack_credentials_json: OnyxStaticCredentialsProvider,
63+
) -> None:
64+
slack_connector.channels = channels
65+
slim_docs_generator = slack_connector.retrieve_all_slim_documents()
66+
for slim_docs in slim_docs_generator:
67+
# just test to make sure that the generator steps through all slim-docs appropriately
68+
pass

0 commit comments

Comments
 (0)