|
34 | 34 | from crowdin_api.api_resources.reports.types import BaseRates, Match |
35 | 35 | from crowdin_api.requester import APIRequester |
36 | 36 |
|
| 37 | +from crowdin_api.api_resources.reports.resource import UserReportSettingsTemplatesResource |
| 38 | + |
37 | 39 |
|
38 | 40 | class TestReportsResource: |
39 | 41 | resource_class = ReportsResource |
@@ -2163,3 +2165,203 @@ def test_delete_report_settings_template(self, m_request, base_absolut_url): |
2163 | 2165 | reportSettingsTemplateId=1 |
2164 | 2166 | ) |
2165 | 2167 | ) |
| 2168 | + |
| 2169 | + |
| 2170 | +class TestUserReportSettingsTemplatesResource: |
| 2171 | + resource_class = UserReportSettingsTemplatesResource |
| 2172 | + |
| 2173 | + def get_resource(self, base_absolut_url): |
| 2174 | + return self.resource_class(requester=APIRequester(base_url=base_absolut_url)) |
| 2175 | + |
| 2176 | + @pytest.mark.parametrize( |
| 2177 | + "incoming_data, path", |
| 2178 | + ( |
| 2179 | + ({"userId": 1}, "users/1/reports/settings-templates"), |
| 2180 | + ( |
| 2181 | + {"userId": 1, "reportSettingsTemplateId": 1}, |
| 2182 | + "users/1/reports/settings-templates/1" |
| 2183 | + ), |
| 2184 | + ), |
| 2185 | + ) |
| 2186 | + def test_get_user_report_settings_templates_path( |
| 2187 | + self, incoming_data, path, base_absolut_url |
| 2188 | + ): |
| 2189 | + resource = self.get_resource(base_absolut_url) |
| 2190 | + assert resource.get_user_report_settings_templates_path(**incoming_data) == path |
| 2191 | + |
| 2192 | + @pytest.mark.parametrize( |
| 2193 | + "incoming_data, request_params", |
| 2194 | + ( |
| 2195 | + ( |
| 2196 | + {}, |
| 2197 | + { |
| 2198 | + "limit": 25, |
| 2199 | + "offset": 0, |
| 2200 | + }, |
| 2201 | + ), |
| 2202 | + ( |
| 2203 | + { |
| 2204 | + "limit": 10, |
| 2205 | + "offset": 2, |
| 2206 | + }, |
| 2207 | + { |
| 2208 | + "limit": 10, |
| 2209 | + "offset": 2, |
| 2210 | + }, |
| 2211 | + ), |
| 2212 | + ), |
| 2213 | + ) |
| 2214 | + @mock.patch("crowdin_api.requester.APIRequester.request") |
| 2215 | + def test_list_user_report_settings_template( |
| 2216 | + self, |
| 2217 | + m_request, |
| 2218 | + incoming_data, |
| 2219 | + request_params, |
| 2220 | + base_absolut_url |
| 2221 | + ): |
| 2222 | + m_request.return_value = "response" |
| 2223 | + |
| 2224 | + resource = self.get_resource(base_absolut_url) |
| 2225 | + assert resource.list_user_report_settings_template(userId=1, **incoming_data) == "response" |
| 2226 | + m_request.assert_called_once_with( |
| 2227 | + method="get", |
| 2228 | + path=resource.get_user_report_settings_templates_path(userId=1), |
| 2229 | + params=request_params, |
| 2230 | + ) |
| 2231 | + |
| 2232 | + @pytest.mark.parametrize( |
| 2233 | + "incoming_data, request_data", |
| 2234 | + ( |
| 2235 | + ( |
| 2236 | + { |
| 2237 | + "name": "test_name", |
| 2238 | + "currency": Currency.UAH, |
| 2239 | + "unit": Unit.WORDS, |
| 2240 | + "config": { |
| 2241 | + "regularRates": [ |
| 2242 | + { |
| 2243 | + "mode": "tm_match", |
| 2244 | + "value": 0.1 |
| 2245 | + } |
| 2246 | + ], |
| 2247 | + "individualRates": [ |
| 2248 | + { |
| 2249 | + "languageIds": ["uk"], |
| 2250 | + "userIds": [1], |
| 2251 | + "rates": [ |
| 2252 | + { |
| 2253 | + "mode": "tm_match", |
| 2254 | + "value": 0.1 |
| 2255 | + } |
| 2256 | + ] |
| 2257 | + } |
| 2258 | + ] |
| 2259 | + } |
| 2260 | + }, |
| 2261 | + { |
| 2262 | + "name": "test_name", |
| 2263 | + "currency": Currency.UAH, |
| 2264 | + "unit": Unit.WORDS, |
| 2265 | + "mode": "simple", |
| 2266 | + "config": { |
| 2267 | + "regularRates": [ |
| 2268 | + { |
| 2269 | + "mode": "tm_match", |
| 2270 | + "value": 0.1 |
| 2271 | + } |
| 2272 | + ], |
| 2273 | + "individualRates": [ |
| 2274 | + { |
| 2275 | + "languageIds": ["uk"], |
| 2276 | + "userIds": [1], |
| 2277 | + "rates": [ |
| 2278 | + { |
| 2279 | + "mode": "tm_match", |
| 2280 | + "value": 0.1 |
| 2281 | + } |
| 2282 | + ] |
| 2283 | + } |
| 2284 | + ] |
| 2285 | + } |
| 2286 | + }, |
| 2287 | + ), |
| 2288 | + ), |
| 2289 | + ) |
| 2290 | + @mock.patch("crowdin_api.requester.APIRequester.request") |
| 2291 | + def test_add_user_report_settings_template( |
| 2292 | + self, |
| 2293 | + m_request, |
| 2294 | + incoming_data, |
| 2295 | + request_data, |
| 2296 | + base_absolut_url |
| 2297 | + ): |
| 2298 | + m_request.return_value = "response" |
| 2299 | + |
| 2300 | + resource = self.get_resource(base_absolut_url) |
| 2301 | + assert resource.add_user_report_settings_template(userId=1, **incoming_data) == "response" |
| 2302 | + m_request.assert_called_once_with( |
| 2303 | + method="post", |
| 2304 | + path=resource.get_user_report_settings_templates_path(userId=1), |
| 2305 | + request_data=request_data, |
| 2306 | + ) |
| 2307 | + |
| 2308 | + @mock.patch("crowdin_api.requester.APIRequester.request") |
| 2309 | + def test_get_user_report_settings_template(self, m_request, base_absolut_url): |
| 2310 | + m_request.return_value = "response" |
| 2311 | + |
| 2312 | + resource = self.get_resource(base_absolut_url) |
| 2313 | + assert resource.get_user_report_settings_template( |
| 2314 | + userId=1, |
| 2315 | + reportSettingsTemplateId=1 |
| 2316 | + ) == "response" |
| 2317 | + m_request.assert_called_once_with( |
| 2318 | + method="get", |
| 2319 | + path=resource.get_user_report_settings_templates_path( |
| 2320 | + userId=1, |
| 2321 | + reportSettingsTemplateId=1 |
| 2322 | + ), |
| 2323 | + ) |
| 2324 | + |
| 2325 | + @mock.patch("crowdin_api.requester.APIRequester.request") |
| 2326 | + def test_edit_user_report_settings_template(self, m_request, base_absolut_url): |
| 2327 | + m_request.return_value = "response" |
| 2328 | + |
| 2329 | + data = [ |
| 2330 | + { |
| 2331 | + "value": "test", |
| 2332 | + "op": PatchOperation.REPLACE, |
| 2333 | + "path": ReportSettingsTemplatesPatchPath.NAME, |
| 2334 | + } |
| 2335 | + ] |
| 2336 | + |
| 2337 | + resource = self.get_resource(base_absolut_url) |
| 2338 | + assert resource.edit_user_report_settings_template( |
| 2339 | + userId=1, |
| 2340 | + reportSettingsTemplateId=1, |
| 2341 | + data=data |
| 2342 | + ) == "response" |
| 2343 | + m_request.assert_called_once_with( |
| 2344 | + method="patch", |
| 2345 | + path=resource.get_user_report_settings_templates_path( |
| 2346 | + userId=1, |
| 2347 | + reportSettingsTemplateId=1 |
| 2348 | + ), |
| 2349 | + request_data=data, |
| 2350 | + ) |
| 2351 | + |
| 2352 | + @mock.patch("crowdin_api.requester.APIRequester.request") |
| 2353 | + def test_delete_user_report_settings_template(self, m_request, base_absolut_url): |
| 2354 | + m_request.return_value = "response" |
| 2355 | + |
| 2356 | + resource = self.get_resource(base_absolut_url) |
| 2357 | + assert resource.delete_user_report_settings_template( |
| 2358 | + userId=1, |
| 2359 | + reportSettingsTemplateId=1 |
| 2360 | + ) == "response" |
| 2361 | + m_request.assert_called_once_with( |
| 2362 | + method="delete", |
| 2363 | + path=resource.get_user_report_settings_templates_path( |
| 2364 | + userId=1, |
| 2365 | + reportSettingsTemplateId=1 |
| 2366 | + ), |
| 2367 | + ) |
0 commit comments