Coverage for api/handlers/authorization/confidential.py: 22%

21 statements  

« prev     ^ index     » next       coverage.py v7.6.2, created at 2024-10-10 03:02 +0300

1from contextlib import suppress 

2from typing import Any 

3 

4from sotrans_models.models.orders.order import OrderDBModel 

5 

6# Models and if dicts are converting after needs 

7# `response_model_exclude_unset = True` in router method decorator 

8 

9 

10def hide_dict_fields_from_carrier(order_data: dict[str, Any]): 

11 order_data.pop("client", None) 

12 order_data.pop("external", None) 

13 order_data.pop("updated", None) 

14 order_data.pop(OrderDBModel.client_price, None) 

15 with suppress(KeyError, AttributeError): 

16 order_data["best_bid"].pop("client_id", None) 

17 with suppress(KeyError, AttributeError): 

18 order_data["your_bid"].pop("client_id", None) 

19 

20 

21def hide_model_fields_from_carrier(order_to_update: OrderDBModel): 

22 order_to_update.client = None 

23 order_to_update.external = None 

24 order_to_update.updated = None 

25 order_to_update.client_price = None 

26 if order_to_update.best_bid: 

27 order_to_update.best_bid.client_id = None 

28 order_to_update.best_bid.model_fields_set.remove("client_id") 

29 order_to_update.model_fields_set.difference_update( 

30 {"client", "external", "updated", "client_price"} 

31 )