@@ -60,10 +60,10 @@ def test_rate_limits_by_ip():
6060 assert should_ratelimit_request (route_metadata , "1.2.3.4" , None , cm ) == {
6161 "block" : False
6262 }
63- assert should_ratelimit_request (route_metadata , "1.2.3.4" , None , cm ) == {
64- "block" : True ,
65- "trigger" : "ip" ,
66- }
63+ result = should_ratelimit_request (route_metadata , "1.2.3.4" , None , cm )
64+ assert result [ "block" ] is True
65+ assert result [ "trigger" ] == "ip"
66+ assert result [ "retry_after_seconds" ] >= 0
6767
6868
6969def test_rate_limiting_ip_allowed ():
@@ -126,10 +126,10 @@ def test_rate_limiting_by_user(user):
126126 assert should_ratelimit_request (route_metadata , "1.2.3.6" , user , cm ) == {
127127 "block" : False
128128 }
129- assert should_ratelimit_request (route_metadata , "1.2.3.7" , user , cm ) == {
130- "block" : True ,
131- "trigger" : "user" ,
132- }
129+ result = should_ratelimit_request (route_metadata , "1.2.3.7" , user , cm )
130+ assert result [ "block" ] is True
131+ assert result [ "trigger" ] == "user"
132+ assert result [ "retry_after_seconds" ] >= 0
133133
134134
135135def test_rate_limiting_with_wildcard ():
@@ -160,9 +160,12 @@ def test_rate_limiting_with_wildcard():
160160 ) == {"block" : False }
161161
162162 # This request should trigger the rate limit
163- assert should_ratelimit_request (
163+ result = should_ratelimit_request (
164164 create_route_metadata (route = "/api/login" ), "1.2.3.4" , None , cm
165- ) == {"block" : True , "trigger" : "ip" }
165+ )
166+ assert result ["block" ] is True
167+ assert result ["trigger" ] == "ip"
168+ assert result ["retry_after_seconds" ] >= 0
166169
167170
168171def test_rate_limiting_with_wildcard2 ():
@@ -193,10 +196,10 @@ def test_rate_limiting_with_wildcard2():
193196
194197 # This request should trigger the rate limit
195198 metadata = create_route_metadata (route = "/api/login" , method = "GET" )
196- assert should_ratelimit_request (metadata , "1.2.3.4" , None , cm ) == {
197- "block" : True ,
198- "trigger" : "ip" ,
199- }
199+ result = should_ratelimit_request (metadata , "1.2.3.4" , None , cm )
200+ assert result [ "block" ] is True
201+ assert result [ "trigger" ] == "ip"
202+ assert result [ "retry_after_seconds" ] >= 0
200203
201204
202205def test_rate_limiting_by_user_with_same_ip ():
@@ -228,10 +231,10 @@ def test_rate_limiting_by_user_with_same_ip():
228231 }
229232
230233 # This request should trigger the rate limit
231- assert should_ratelimit_request (metadata , "1.2.3.4" , {"id" : "123" }, cm ) == {
232- "block" : True ,
233- "trigger" : "user" ,
234- }
234+ result = should_ratelimit_request (metadata , "1.2.3.4" , {"id" : "123" }, cm )
235+ assert result [ "block" ] is True
236+ assert result [ "trigger" ] == "user"
237+ assert result [ "retry_after_seconds" ] >= 0
235238
236239
237240def test_rate_limiting_by_user_with_different_ips ():
@@ -267,10 +270,10 @@ def test_rate_limiting_by_user_with_different_ips():
267270 }
268271
269272 # This request from second IP should trigger the rate limit
270- assert should_ratelimit_request (metadata , "4.3.2.1" , {"id" : "123" }, cm ) == {
271- "block" : True ,
272- "trigger" : "user" ,
273- }
273+ result = should_ratelimit_request (metadata , "4.3.2.1" , {"id" : "123" }, cm )
274+ assert result [ "block" ] is True
275+ assert result [ "trigger" ] == "user"
276+ assert result [ "retry_after_seconds" ] >= 0
274277
275278
276279def test_rate_limiting_same_ip_different_users ():
@@ -385,10 +388,10 @@ def test_rate_limits_by_user_with_different_ips():
385388 "block" : False
386389 }
387390 # This request should trigger the rate limit by group
388- assert should_ratelimit_request (route_metadata , "4.3.2.1" , user , cm , "group1" ) == {
389- "block" : True ,
390- "trigger" : "group" ,
391- }
391+ result = should_ratelimit_request (route_metadata , "4.3.2.1" , user , cm , "group1" )
392+ assert result [ "block" ] is True
393+ assert result [ "trigger" ] == "group"
394+ assert result [ "retry_after_seconds" ] >= 0
392395
393396
394397def test_rate_limits_different_users_in_same_group ():
@@ -420,12 +423,12 @@ def test_rate_limits_different_users_in_same_group():
420423 route_metadata , "1.2.3.4" , {"id" : "789" }, cm , "group1"
421424 ) == {"block" : False }
422425 # This request should trigger the rate limit by group
423- assert should_ratelimit_request (
426+ result = should_ratelimit_request (
424427 route_metadata , "4.3.2.1" , {"id" : "101112" }, cm , "group1"
425- ) == {
426- "block" : True ,
427- "trigger" : "group" ,
428- }
428+ )
429+ assert result [ "block" ] is True
430+ assert result [ "trigger" ] == "group"
431+ assert result [ "retry_after_seconds" ] >= 0
429432
430433
431434def test_works_with_multiple_rate_limit_groups_and_different_users ():
@@ -457,30 +460,30 @@ def test_works_with_multiple_rate_limit_groups_and_different_users():
457460 route_metadata , "4.3.2.1" , {"id" : "101112" }, cm , "group2"
458461 ) == {"block" : False }
459462 # This request should trigger the rate limit for group1
460- assert should_ratelimit_request (
463+ result = should_ratelimit_request (
461464 route_metadata , "1.2.3.4" , {"id" : "789" }, cm , "group1"
462- ) == {
463- "block" : True ,
464- "trigger" : "group" ,
465- }
465+ )
466+ assert result [ "block" ] is True
467+ assert result [ "trigger" ] == "group"
468+ assert result [ "retry_after_seconds" ] >= 0
466469 # This request should also trigger the rate limit for group1
467- assert should_ratelimit_request (
470+ result = should_ratelimit_request (
468471 route_metadata , "1.2.3.4" , {"id" : "4321" }, cm , "group1"
469- ) == {
470- "block" : True ,
471- "trigger" : "group" ,
472- }
472+ )
473+ assert result [ "block" ] is True
474+ assert result [ "trigger" ] == "group"
475+ assert result [ "retry_after_seconds" ] >= 0
473476 # First request from user 953, group2
474477 assert should_ratelimit_request (
475478 route_metadata , "4.3.2.1" , {"id" : "953" }, cm , "group2"
476479 ) == {"block" : False }
477480 # This request should trigger the rate limit for group2
478- assert should_ratelimit_request (
481+ result = should_ratelimit_request (
479482 route_metadata , "4.3.2.1" , {"id" : "1563" }, cm , "group2"
480- ) == {
481- "block" : True ,
482- "trigger" : "group" ,
483- }
483+ )
484+ assert result [ "block" ] is True
485+ assert result [ "trigger" ] == "group"
486+ assert result [ "retry_after_seconds" ] >= 0
484487
485488
486489def test_rate_limits_by_group_if_user_is_not_set ():
@@ -512,10 +515,10 @@ def test_rate_limits_by_group_if_user_is_not_set():
512515 "block" : False
513516 }
514517 # This request should trigger the rate limit by group
515- assert should_ratelimit_request (route_metadata , "4.3.2.1" , None , cm , "group1" ) == {
516- "block" : True ,
517- "trigger" : "group" ,
518- }
518+ result = should_ratelimit_request (route_metadata , "4.3.2.1" , None , cm , "group1" )
519+ assert result [ "block" ] is True
520+ assert result [ "trigger" ] == "group"
521+ assert result [ "retry_after_seconds" ] >= 0
519522
520523
521524def test_does_not_rate_limit_excluded_users ():
0 commit comments