Skip to content

Commit 46e2153

Browse files
Test: event and worker tests
1 parent 91b8a10 commit 46e2153

5 files changed

Lines changed: 985 additions & 0 deletions

File tree

tests/unit/event/__init__.py

Whitespace-only changes.
Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,262 @@
1+
import logging
2+
from unittest.mock import AsyncMock, MagicMock, patch
3+
4+
import pytest
5+
6+
from conductor.asyncio_client.event.event_client import AsyncEventClient
7+
from conductor.asyncio_client.http.api_client import ApiClient
8+
from conductor.shared.event.configuration import QueueConfiguration
9+
from conductor.shared.event.configuration.kafka_queue import KafkaQueueConfiguration, KafkaConsumerConfiguration, KafkaProducerConfiguration
10+
11+
12+
@pytest.fixture(autouse=True)
13+
def disable_logging():
14+
logging.disable(logging.CRITICAL)
15+
yield
16+
logging.disable(logging.NOTSET)
17+
18+
19+
@pytest.fixture
20+
def mock_api_client():
21+
return MagicMock(spec=ApiClient)
22+
23+
24+
@pytest.fixture
25+
def mock_event_resource_api():
26+
return AsyncMock()
27+
28+
29+
@pytest.fixture
30+
def event_client(mock_api_client, mock_event_resource_api):
31+
with patch('conductor.asyncio_client.event.event_client.EventResourceApiAdapter', return_value=mock_event_resource_api):
32+
client = AsyncEventClient(mock_api_client)
33+
client.client = mock_event_resource_api
34+
return client
35+
36+
37+
@pytest.fixture
38+
def kafka_queue_config():
39+
config = KafkaQueueConfiguration("test_topic")
40+
consumer_config = KafkaConsumerConfiguration("localhost:9092")
41+
producer_config = KafkaProducerConfiguration("localhost:9092")
42+
config.add_consumer(consumer_config)
43+
config.add_producer(producer_config)
44+
return config
45+
46+
47+
@pytest.mark.asyncio
48+
async def test_delete_queue_configuration_success(event_client, kafka_queue_config, mock_event_resource_api):
49+
await event_client.delete_queue_configuration(kafka_queue_config)
50+
51+
mock_event_resource_api.delete_queue_config.assert_called_once_with(
52+
queue_name="test_topic",
53+
queue_type="kafka"
54+
)
55+
56+
57+
@pytest.mark.asyncio
58+
async def test_get_kafka_queue_configuration_success(event_client, mock_event_resource_api):
59+
expected_config = KafkaQueueConfiguration("test_topic")
60+
mock_event_resource_api.get_queue_config.return_value = expected_config
61+
62+
result = await event_client.get_kafka_queue_configuration("test_topic")
63+
64+
mock_event_resource_api.get_queue_config.assert_called_once_with("kafka", "test_topic")
65+
assert result == expected_config
66+
67+
68+
@pytest.mark.asyncio
69+
async def test_get_queue_configuration_success(event_client, mock_event_resource_api):
70+
expected_config = MagicMock()
71+
mock_event_resource_api.get_queue_config.return_value = expected_config
72+
73+
result = await event_client.get_queue_configuration("kafka", "test_topic")
74+
75+
mock_event_resource_api.get_queue_config.assert_called_once_with("kafka", "test_topic")
76+
assert result == expected_config
77+
78+
79+
@pytest.mark.asyncio
80+
async def test_put_queue_configuration_success(event_client, kafka_queue_config, mock_event_resource_api):
81+
await event_client.put_queue_configuration(kafka_queue_config)
82+
83+
mock_event_resource_api.put_queue_config.assert_called_once_with(
84+
body=kafka_queue_config.get_worker_configuration(),
85+
queue_name="test_topic",
86+
queue_type="kafka"
87+
)
88+
89+
90+
@pytest.mark.asyncio
91+
async def test_delete_queue_configuration_error_handling(event_client, kafka_queue_config, mock_event_resource_api):
92+
mock_event_resource_api.delete_queue_config.side_effect = Exception("Delete failed")
93+
94+
with pytest.raises(Exception, match="Delete failed"):
95+
await event_client.delete_queue_configuration(kafka_queue_config)
96+
97+
98+
@pytest.mark.asyncio
99+
async def test_get_kafka_queue_configuration_error_handling(event_client, mock_event_resource_api):
100+
mock_event_resource_api.get_queue_config.side_effect = Exception("Get failed")
101+
102+
with pytest.raises(Exception, match="Get failed"):
103+
await event_client.get_kafka_queue_configuration("test_topic")
104+
105+
106+
@pytest.mark.asyncio
107+
async def test_get_queue_configuration_error_handling(event_client, mock_event_resource_api):
108+
mock_event_resource_api.get_queue_config.side_effect = Exception("Get failed")
109+
110+
with pytest.raises(Exception, match="Get failed"):
111+
await event_client.get_queue_configuration("kafka", "test_topic")
112+
113+
114+
@pytest.mark.asyncio
115+
async def test_put_queue_configuration_error_handling(event_client, kafka_queue_config, mock_event_resource_api):
116+
mock_event_resource_api.put_queue_config.side_effect = Exception("Put failed")
117+
118+
with pytest.raises(Exception, match="Put failed"):
119+
await event_client.put_queue_configuration(kafka_queue_config)
120+
121+
122+
@pytest.mark.asyncio
123+
async def test_get_kafka_queue_configuration_calls_get_queue_configuration(event_client, mock_event_resource_api):
124+
expected_config = MagicMock()
125+
mock_event_resource_api.get_queue_config.return_value = expected_config
126+
127+
result = await event_client.get_kafka_queue_configuration("test_topic")
128+
129+
mock_event_resource_api.get_queue_config.assert_called_once_with("kafka", "test_topic")
130+
assert result == expected_config
131+
132+
133+
@pytest.mark.asyncio
134+
async def test_delete_queue_configuration_with_different_queue_types(event_client, mock_event_resource_api):
135+
config = MagicMock(spec=QueueConfiguration)
136+
config.queue_name = "test_queue"
137+
config.queue_type = "redis"
138+
139+
await event_client.delete_queue_configuration(config)
140+
141+
mock_event_resource_api.delete_queue_config.assert_called_once_with(
142+
queue_name="test_queue",
143+
queue_type="redis"
144+
)
145+
146+
147+
@pytest.mark.asyncio
148+
async def test_put_queue_configuration_with_different_queue_types(event_client, mock_event_resource_api):
149+
config = MagicMock(spec=QueueConfiguration)
150+
config.queue_name = "test_queue"
151+
config.queue_type = "redis"
152+
config.get_worker_configuration.return_value = {"test": "config"}
153+
154+
await event_client.put_queue_configuration(config)
155+
156+
mock_event_resource_api.put_queue_config.assert_called_once_with(
157+
body={"test": "config"},
158+
queue_name="test_queue",
159+
queue_type="redis"
160+
)
161+
162+
163+
@pytest.mark.asyncio
164+
async def test_get_queue_configuration_with_different_queue_types(event_client, mock_event_resource_api):
165+
expected_config = MagicMock()
166+
mock_event_resource_api.get_queue_config.return_value = expected_config
167+
168+
result = await event_client.get_queue_configuration("redis", "test_queue")
169+
170+
mock_event_resource_api.get_queue_config.assert_called_once_with("redis", "test_queue")
171+
assert result == expected_config
172+
173+
174+
@pytest.mark.asyncio
175+
async def test_delete_queue_configuration_returns_none(event_client, kafka_queue_config, mock_event_resource_api):
176+
mock_event_resource_api.delete_queue_config.return_value = None
177+
178+
result = await event_client.delete_queue_configuration(kafka_queue_config)
179+
180+
assert result is None
181+
182+
183+
@pytest.mark.asyncio
184+
async def test_put_queue_configuration_returns_result(event_client, kafka_queue_config, mock_event_resource_api):
185+
expected_result = MagicMock()
186+
mock_event_resource_api.put_queue_config.return_value = expected_result
187+
188+
result = await event_client.put_queue_configuration(kafka_queue_config)
189+
190+
assert result == expected_result
191+
192+
193+
@pytest.mark.asyncio
194+
async def test_get_queue_configuration_returns_config(event_client, mock_event_resource_api):
195+
expected_config = MagicMock()
196+
mock_event_resource_api.get_queue_config.return_value = expected_config
197+
198+
result = await event_client.get_queue_configuration("kafka", "test_topic")
199+
200+
assert result == expected_config
201+
202+
203+
@pytest.mark.asyncio
204+
async def test_get_kafka_queue_configuration_returns_config(event_client, mock_event_resource_api):
205+
expected_config = MagicMock()
206+
mock_event_resource_api.get_queue_config.return_value = expected_config
207+
208+
result = await event_client.get_kafka_queue_configuration("test_topic")
209+
210+
assert result == expected_config
211+
212+
213+
@pytest.mark.asyncio
214+
async def test_delete_queue_configuration_with_empty_queue_name(event_client, mock_event_resource_api):
215+
config = MagicMock(spec=QueueConfiguration)
216+
config.queue_name = ""
217+
config.queue_type = "kafka"
218+
219+
await event_client.delete_queue_configuration(config)
220+
221+
mock_event_resource_api.delete_queue_config.assert_called_once_with(
222+
queue_name="",
223+
queue_type="kafka"
224+
)
225+
226+
227+
@pytest.mark.asyncio
228+
async def test_put_queue_configuration_with_empty_queue_name(event_client, mock_event_resource_api):
229+
config = MagicMock(spec=QueueConfiguration)
230+
config.queue_name = ""
231+
config.queue_type = "kafka"
232+
config.get_worker_configuration.return_value = {}
233+
234+
await event_client.put_queue_configuration(config)
235+
236+
mock_event_resource_api.put_queue_config.assert_called_once_with(
237+
body={},
238+
queue_name="",
239+
queue_type="kafka"
240+
)
241+
242+
243+
@pytest.mark.asyncio
244+
async def test_get_queue_configuration_with_empty_queue_name(event_client, mock_event_resource_api):
245+
expected_config = MagicMock()
246+
mock_event_resource_api.get_queue_config.return_value = expected_config
247+
248+
result = await event_client.get_queue_configuration("kafka", "")
249+
250+
mock_event_resource_api.get_queue_config.assert_called_once_with("kafka", "")
251+
assert result == expected_config
252+
253+
254+
@pytest.mark.asyncio
255+
async def test_get_kafka_queue_configuration_with_empty_topic(event_client, mock_event_resource_api):
256+
expected_config = MagicMock()
257+
mock_event_resource_api.get_queue_config.return_value = expected_config
258+
259+
result = await event_client.get_kafka_queue_configuration("")
260+
261+
mock_event_resource_api.get_queue_config.assert_called_once_with("kafka", "")
262+
assert result == expected_config

0 commit comments

Comments
 (0)