1212from eb_sqs .worker .worker_exceptions import MaxRetriesReachedException
1313from eb_sqs .worker .worker_factory import WorkerFactory
1414
15+
1516class TestException (Exception ):
1617 pass
1718
19+
1820@task ()
1921def dummy_task (msg ):
2022 return msg
2123
24+
2225@task (max_retries = 100 )
2326def retries_task (num_of_retries ):
2427 if retries_task .retry_num < num_of_retries :
2528 retries_task .retry (execute_inline = True )
2629
30+
2731@task (max_retries = 5 )
2832def max_retries_task ():
2933 max_retries_task .retry (execute_inline = True )
3034
35+
3136@task (max_retries = 100 )
3237def repeating_group_task (num_of_retries ):
3338 if repeating_group_task .retry_num < num_of_retries :
3439 repeating_group_task .retry (execute_inline = True )
3540
41+
3642@task ()
3743def exception_group_task ():
3844 raise TestException ()
3945
46+
4047@task (max_retries = 100 )
4148def exception_repeating_group_task (num_of_retries ):
4249 if exception_repeating_group_task .retry_num == num_of_retries :
4350 raise TestException ()
4451 else :
4552 exception_repeating_group_task .retry (execute_inline = True )
4653
54+
4755@task (max_retries = 5 )
4856def max_retries_group_task ():
4957 max_retries_group_task .retry (execute_inline = True )
5058
59+
5160global_group_mock = Mock ()
5261
62+
5363class WorkerTest (TestCase ):
5464 def setUp (self ):
5565 settings .DEAD_LETTER_MODE = False
@@ -65,14 +75,14 @@ def setUp(self):
6575
6676 def setUpGroupsHandling (self ):
6777 self .group_set = set ()
68- self .group_mock .add .side_effect = lambda task : self .group_set .add ('{}-{}' .format (task .id , task .retry_id ))
69- self .group_mock .remove .side_effect = lambda task : len (self .group_set ) == 0 if self .group_set .discard (
70- '{}-{}' .format (task .id , task .retry_id )) is None else False
78+ self .group_mock .add .side_effect = lambda tsk : self .group_set .add ('{}-{}' .format (tsk .id , tsk .retry_id ))
79+ self .group_mock .remove .side_effect = lambda tsk : len (self .group_set ) == 0 if self .group_set .discard (
80+ '{}-{}' .format (tsk .id , tsk .retry_id )) is None else False
7181
7282 def test_worker_execution_no_group (self ):
7383 msg = '{"id": "id-1", "retry": 0, "queue": "default", "maxRetries": 5, "args": [], "func": "eb_sqs.tests.worker.tests_worker.dummy_task", "kwargs": {"msg": "Hello World!"}}'
7484
75- result = self .worker .execute (msg )
85+ result = self .worker .execute (msg , 2 )
7686
7787 self .assertEqual (result , 'Hello World!' )
7888 self .group_mock .remove .assert_not_called ()
0 commit comments