Skip to content

Commit ef84f0c

Browse files
committed
Enhance validation in ReEnqueueAfterRequestModel tests
- Updated tests for ReEnqueueAfterRequestModel to raise exceptions for zero and negative delay values, ensuring stricter validation. - Adjusted test cases in related signal tests to reflect the new validation rules, improving overall test reliability and coverage.
1 parent 5d66297 commit ef84f0c

3 files changed

Lines changed: 19 additions & 38 deletions

File tree

state-manager/tests/unit/controller/test_re_queue_after_signal.py

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ async def test_re_queue_after_signal_with_zero_delay(
110110
"""Test re-enqueuing with zero delay"""
111111
# Arrange
112112
mock_time.time.return_value = 1000.0
113-
re_enqueue_request = ReEnqueueAfterRequestModel(enqueue_after=0)
113+
re_enqueue_request = ReEnqueueAfterRequestModel(enqueue_after=1)
114114
mock_state_any_status.save = AsyncMock()
115115
mock_state_class.find_one = AsyncMock(return_value=mock_state_any_status)
116116

@@ -124,8 +124,8 @@ async def test_re_queue_after_signal_with_zero_delay(
124124

125125
# Assert
126126
assert result.status == StateStatusEnum.CREATED
127-
assert result.enqueue_after == 1000000 # 1000 * 1000 + 0
128-
assert mock_state_any_status.enqueue_after == 1000000
127+
assert result.enqueue_after == 1000001 # 1000 * 1000 + 0
128+
assert mock_state_any_status.enqueue_after == 1000001
129129
assert mock_state_any_status.save.call_count == 1
130130

131131
@patch('app.controller.re_queue_after_signal.State')
@@ -173,24 +173,13 @@ async def test_re_queue_after_signal_with_negative_delay(
173173
):
174174
"""Test re-enqueuing with negative delay (should still work)"""
175175
# Arrange
176-
mock_time.time.return_value = 1000.0
177-
re_enqueue_request = ReEnqueueAfterRequestModel(enqueue_after=-5000) # Negative delay
178-
mock_state_any_status.save = AsyncMock()
179-
mock_state_class.find_one = AsyncMock(return_value=mock_state_any_status)
180-
181-
# Act
182-
result = await re_queue_after_signal(
183-
mock_namespace,
184-
mock_state_id,
185-
re_enqueue_request,
186-
mock_request_id
187-
)
176+
177+
with pytest.raises(Exception):
178+
ReEnqueueAfterRequestModel(enqueue_after=-5000) # Negative delay
188179

189-
# Assert
190-
assert result.status == StateStatusEnum.CREATED
191-
assert result.enqueue_after == 995000 # 1000 * 1000 + (-5000)
192-
assert mock_state_any_status.enqueue_after == 995000
193-
assert mock_state_any_status.save.call_count == 1
180+
with pytest.raises(Exception):
181+
ReEnqueueAfterRequestModel(enqueue_after=0)
182+
194183

195184
@patch('app.controller.re_queue_after_signal.State')
196185
async def test_re_queue_after_signal_database_error(

state-manager/tests/unit/models/test_signal_models.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,15 @@ def test_re_enqueue_after_request_model_valid_delay(self):
7777
def test_re_enqueue_after_request_model_zero_delay(self):
7878
"""Test ReEnqueueAfterRequestModel with zero delay"""
7979
# Arrange & Act
80-
delay = 0
81-
model = ReEnqueueAfterRequestModel(enqueue_after=delay)
82-
83-
# Assert
84-
assert model.enqueue_after == delay
80+
with pytest.raises(Exception):
81+
ReEnqueueAfterRequestModel(enqueue_after=0)
8582

8683
def test_re_enqueue_after_request_model_negative_delay(self):
8784
"""Test ReEnqueueAfterRequestModel with negative delay"""
8885
# Arrange & Act
89-
delay = -5000
90-
model = ReEnqueueAfterRequestModel(enqueue_after=delay)
91-
92-
# Assert
93-
assert model.enqueue_after == delay
94-
86+
with pytest.raises(Exception):
87+
ReEnqueueAfterRequestModel(enqueue_after=-5000)
88+
9589
def test_re_enqueue_after_request_model_large_delay(self):
9690
"""Test ReEnqueueAfterRequestModel with large delay"""
9791
# Arrange & Act

state-manager/tests/unit/test_routes.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,13 @@ def test_re_enqueue_after_request_model_validation(self):
153153

154154
# Test with zero delay
155155
zero_data = {"enqueue_after": 0}
156-
model = ReEnqueueAfterRequestModel(**zero_data)
157-
assert model.enqueue_after == 0
156+
with pytest.raises(Exception):
157+
ReEnqueueAfterRequestModel(**zero_data)
158158

159159
# Test with negative delay
160160
negative_data = {"enqueue_after": -5000}
161-
model = ReEnqueueAfterRequestModel(**negative_data)
162-
assert model.enqueue_after == -5000
161+
with pytest.raises(Exception):
162+
ReEnqueueAfterRequestModel(**negative_data)
163163

164164
# Test with large delay
165165
large_data = {"enqueue_after": 86400000}
@@ -821,11 +821,9 @@ async def test_re_enqueue_after_state_route_with_different_delays(self, mock_re_
821821

822822
# Test cases with different delays
823823
test_cases = [
824-
0, # No delay
825824
1000, # 1 second
826825
60000, # 1 minute
827-
3600000, # 1 hour
828-
-5000 # Negative delay
826+
3600000 # 1 hour
829827
]
830828

831829
for delay in test_cases:

0 commit comments

Comments
 (0)