Coverage for tests/tests_unit/cases_carrier_checks.py: 31%

51 statements  

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

1import pytest_cases 

2from sotrans_models.models.resources.trucks import ( 

3 BodySettingsModel, 

4 BodyType, 

5 LoadingType, 

6) 

7 

8 

9@pytest_cases.fixture 

10def body_settings_model(): 

11 return BodySettingsModel(body_type=[]) 

12 

13 

14# Cases returns carriers as 1st ret element, requirements as 2nd. 

15 

16 

17class BodySettingsPass: 

18 def case_no_required(self, body_settings_model): 

19 return body_settings_model, None 

20 

21 def case_matching_body_type(self, body_settings_model: BodySettingsModel): 

22 b_req = body_settings_model.model_copy(deep=True) 

23 b_req.body_type = [BodyType.tilt, BodyType.isotherm] 

24 body_settings_model.body_type = [BodyType.tilt, BodyType.refrigerator] 

25 return body_settings_model, b_req 

26 

27 def case_matching_load(self, body_settings_model: BodySettingsModel): 

28 b_req = body_settings_model.model_copy(deep=True) 

29 b_req.loading_type = [LoadingType.any] 

30 body_settings_model.loading_type = [LoadingType.top] 

31 return body_settings_model, b_req 

32 

33 def case_matching_weight(self, body_settings_model: BodySettingsModel): 

34 b_req = body_settings_model.model_copy(deep=True) 

35 b_req.weight = 10 

36 body_settings_model.weight = 10.5 

37 return body_settings_model, b_req 

38 

39 def case_matching_volume(self, body_settings_model: BodySettingsModel): 

40 b_req = body_settings_model.model_copy(deep=True) 

41 b_req.volume = None 

42 body_settings_model.volume = 2 

43 return body_settings_model, b_req 

44 

45 

46class BodySettingsFailing: 

47 def case_not_provided(self, body_settings_model: BodySettingsModel): 

48 b_req = body_settings_model.model_copy(deep=True) 

49 return None, b_req 

50 

51 def case_not_provided_weight(self, body_settings_model: BodySettingsModel): 

52 b_req = body_settings_model.model_copy(deep=True) 

53 b_req.weight = 10 

54 return body_settings_model, b_req 

55 

56 def case_not_matching_body(self, body_settings_model: BodySettingsModel): 

57 b_req = body_settings_model.model_copy(deep=True) 

58 b_req.body_type = [BodyType.tilt] 

59 body_settings_model.body_type = [BodyType.refrigerator] 

60 return body_settings_model, b_req 

61 

62 def case_not_matching_loading_type( 

63 self, body_settings_model: BodySettingsModel 

64 ): 

65 b_req = body_settings_model.model_copy(deep=True) 

66 b_req.loading_type = [LoadingType.top] 

67 body_settings_model.loading_type = [LoadingType.side] 

68 return body_settings_model, b_req 

69 

70 def case_not_matching_volume(self, body_settings_model: BodySettingsModel): 

71 b_req = body_settings_model.model_copy(deep=True) 

72 b_req.volume = 5 

73 body_settings_model.volume = 4 

74 return body_settings_model, b_req