@@ -71,16 +71,39 @@ def test_load_rate_limits(tmp_path: pathlib.Path, caplog) -> None:
71
71
loaded_rate_limits = config .load_rate_limits (rate_limits_file )
72
72
assert loaded_rate_limits == config .RateLimitsConfig ()
73
73
74
- # rate_limits_file = str(tmp_path / "rate-limits.yaml")
75
- # rate_limits = {
76
- # "/jobs/{job_id}": {
77
- # "get": {"api": ["1/second"], "ui": ["2/second"]}
78
- # },
79
- # }
80
- # with open(rate_limits_file, "w") as file:
81
- # 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)
74
+ rate_limits_file = str (tmp_path / "rate-limits.yaml" )
75
+ rate_limits = {
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" ]}},
80
+ },
81
+ }
82
+ with open (rate_limits_file , "w" ) as file :
83
+ yaml .dump (rate_limits , file )
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 = {
0 commit comments