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
« 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)
9@pytest_cases.fixture
10def body_settings_model():
11 return BodySettingsModel(body_type=[])
14# Cases returns carriers as 1st ret element, requirements as 2nd.
17class BodySettingsPass:
18 def case_no_required(self, body_settings_model):
19 return body_settings_model, None
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
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
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
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
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
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
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
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
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