@@ -73,18 +73,41 @@ def test_load_rate_limits(tmp_path: pathlib.Path, caplog) -> None:
73
73
74
74
rate_limits_file = str (tmp_path / "rate-limits.yaml" )
75
75
rate_limits = {
76
- "/processes/{process_id}/execution" : {
77
- "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]}
76
+ "/jobs/{job_id}" : {"get" : {"api" : ["1/second" ], "ui" : ["2/second" ]}},
77
+ "/processes/{process_id}/constraints" : {
78
+ "default" : {"get" : {"api" : ["1/second" ], "ui" : ["2/second" ]}},
79
+ "process-id" : {"post" : {"api" : ["1/second" ], "ui" : ["2/second" ]}},
78
80
},
79
81
}
80
82
with open (rate_limits_file , "w" ) as file :
81
83
yaml .dump (rate_limits , file )
82
- loaded_rate_limits = config .load_rate_limits (rate_limits_file )
83
- assert loaded_rate_limits == config .RateLimitsConfig (** rate_limits )
84
+ loaded_rate_limits = config .load_rate_limits (rate_limits_file ).model_dump ()
85
+ expected_jobs_limits = {
86
+ "get" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
87
+ "post" : {"api" : [], "ui" : []},
88
+ "delete" : {"api" : [], "ui" : []},
89
+ }
90
+ assert loaded_rate_limits ["jobs_jobsid" ] == expected_jobs_limits
91
+ expected_process_constraints_limits = {
92
+ "default" : {
93
+ "get" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
94
+ "post" : {"api" : [], "ui" : []},
95
+ "delete" : {"api" : [], "ui" : []},
96
+ },
97
+ "process-id" : {
98
+ "get" : {"api" : [], "ui" : []},
99
+ "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
100
+ "delete" : {"api" : [], "ui" : []},
101
+ },
102
+ }
103
+ assert (
104
+ loaded_rate_limits ["processes_processid_constraints" ]
105
+ == expected_process_constraints_limits
106
+ )
84
107
85
108
rate_limits_file = str (tmp_path / "invalid-rate-limits.yaml" )
86
109
rate_limits = {
87
- "/processes/{process_id}/execution " : {"post " : {"api" : ["invalid_limit" ]}},
110
+ "/jobs/{job_id} " : {"get " : {"api" : ["invalid_limit" ]}},
88
111
}
89
112
with open (rate_limits_file , "w" ) as file :
90
113
yaml .dump (rate_limits , file )
@@ -94,41 +117,3 @@ def test_load_rate_limits(tmp_path: pathlib.Path, caplog) -> None:
94
117
rate_limits_file = str (tmp_path / "not-found-rate-limits.yaml" )
95
118
loaded_rate_limits = config .load_rate_limits (rate_limits_file )
96
119
assert loaded_rate_limits == config .RateLimitsConfig ()
97
-
98
-
99
- def test_rate_limits_config_populate_with_default () -> None :
100
- rate_limits_config = config .RateLimitsConfig (
101
- ** {
102
- "default" : {
103
- "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
104
- "get" : {"api" : ["2/second" ]},
105
- },
106
- "/processes/{process_id}/execution" : {"post" : {"api" : ["1/minute" ]}},
107
- }
108
- )
109
- exp_populated_rate_limits_config = {
110
- "default" : {
111
- "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
112
- "get" : {"api" : ["2/second" ]},
113
- },
114
- "process_execution" : {
115
- "post" : {"api" : ["1/minute" ], "ui" : ["2/second" ]},
116
- "get" : {"api" : ["2/second" ]},
117
- },
118
- "jobs" : {
119
- "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
120
- "get" : {"api" : ["2/second" ]},
121
- },
122
- "job" : {
123
- "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
124
- "get" : {"api" : ["2/second" ]},
125
- },
126
- "job_results" : {
127
- "post" : {"api" : ["1/second" ], "ui" : ["2/second" ]},
128
- "get" : {"api" : ["2/second" ]},
129
- },
130
- }
131
- assert (
132
- rate_limits_config .model_dump (exclude_defaults = True )
133
- == exp_populated_rate_limits_config
134
- )
0 commit comments