33
44import asyncio
55from pathlib import Path
6- from typing import AsyncIterator , Iterator
6+ from typing import AsyncIterator
77from unittest .mock import AsyncMock
88
99import pytest
2424from tenacity .stop import stop_after_delay
2525from tenacity .wait import wait_fixed
2626
27- _TENACITY_RETRY_PARAMS = dict (
28- reraise = True ,
29- retry = retry_if_exception_type (AssertionError ),
30- stop = stop_after_delay (10 ),
31- wait = wait_fixed (0.01 ),
32- )
27+ _TENACITY_RETRY_PARAMS = {
28+ " reraise" : True ,
29+ " retry" : retry_if_exception_type (AssertionError ),
30+ " stop" : stop_after_delay (10 ),
31+ " wait" : wait_fixed (0.01 ),
32+ }
3333
3434# FIXTURES
3535
@@ -75,11 +75,11 @@ async def outputs_manager(
7575@pytest .fixture
7676def mocked_port_key_content_changed (
7777 mocker : MockerFixture , outputs_manager : OutputsManager
78- ) -> Iterator [ AsyncMock ] :
78+ ) -> AsyncMock :
7979 async def _mock_upload_outputs (* args , ** kwargs ) -> None :
8080 pass
8181
82- yield mocker .patch .object (
82+ return mocker .patch .object (
8383 outputs_manager , "port_key_content_changed" , side_effect = _mock_upload_outputs
8484 )
8585
@@ -101,8 +101,8 @@ def get_wait_interval(self, dir_size: NonNegativeInt) -> NonNegativeFloat:
101101
102102
103103@pytest .fixture
104- def mock_get_directory_total_size (mocker : MockerFixture ) -> Iterator [ AsyncMock ] :
105- yield mocker .patch (
104+ def mock_get_directory_total_size (mocker : MockerFixture ) -> AsyncMock :
105+ return mocker .patch (
106106 "simcore_service_dynamic_sidecar.modules.outputs._event_filter.get_directory_total_size" ,
107107 return_value = 1 ,
108108 )
@@ -127,10 +127,6 @@ async def _wait_for_event_to_trigger(event_filter: EventFilter) -> None:
127127 await asyncio .sleep (event_filter .delay_policy .get_min_interval () * 5 )
128128
129129
130- async def _wait_for_event_to_trigger_big_directory (event_filter : EventFilter ) -> None :
131- await asyncio .sleep (event_filter .delay_policy .get_wait_interval (1 ) * 2 )
132-
133-
134130# TESTS
135131
136132
@@ -170,8 +166,9 @@ async def test_always_trigger_after_delay(
170166 # event trigger after correct interval delay correctly
171167 for expected_call_count in range (1 , 10 ):
172168 await event_filter .enqueue (port_key_1 )
173- await _wait_for_event_to_trigger_big_directory (event_filter )
174- assert mocked_port_key_content_changed .call_count == expected_call_count
169+ async for attempt in AsyncRetrying (** _TENACITY_RETRY_PARAMS ):
170+ with attempt :
171+ assert mocked_port_key_content_changed .call_count == expected_call_count
175172
176173
177174async def test_minimum_amount_of_get_directory_total_size_calls (
@@ -190,7 +187,6 @@ async def test_minimum_amount_of_get_directory_total_size_calls(
190187 assert mocked_port_key_content_changed .call_count == 0
191188
192189 # event finished processing and was dispatched
193- await _wait_for_event_to_trigger_big_directory (event_filter )
194190 async for attempt in AsyncRetrying (** _TENACITY_RETRY_PARAMS ):
195191 with attempt :
196192 assert mock_get_directory_total_size .call_count == 2
@@ -221,9 +217,10 @@ async def test_minimum_amount_of_get_directory_total_size_calls_with_continuous_
221217 assert mocked_port_key_content_changed .call_count == 0
222218
223219 # event finished processing and was dispatched
224- await _wait_for_event_to_trigger_big_directory (event_filter )
225- assert mock_get_directory_total_size .call_count == 2
226- assert mocked_port_key_content_changed .call_count == 1
220+ async for attempt in AsyncRetrying (** _TENACITY_RETRY_PARAMS ):
221+ with attempt :
222+ assert mock_get_directory_total_size .call_count == 2
223+ assert mocked_port_key_content_changed .call_count == 1
227224
228225
229226def test_default_delay_policy ():
0 commit comments