Skip to content

Commit cf482df

Browse files
lint fix
1 parent 8edfd9a commit cf482df

File tree

2 files changed

+26
-25
lines changed

2 files changed

+26
-25
lines changed

src/rules_validation_api/validators/campaign_config_validator.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,45 +9,43 @@
99

1010

1111
class CampaignConfigValidation(CampaignConfig):
12-
1312
@field_validator("iterations")
1413
@classmethod
1514
def validate_iterations(cls, iterations: list[Iteration]) -> list[IterationValidation]:
1615
return [IterationValidation(**i.model_dump()) for i in iterations]
1716

1817
@model_validator(mode="after")
1918
def validate_approval_minimum_is_less_than_or_equal_to_approval_maximum(self) -> typing.Self:
20-
if self.approval_minimum > self.approval_maximum:
21-
raise ValueError(
22-
f"approval_minimum {self.approval_minimum} is greater than approval_maximum {self.approval_maximum}"
23-
)
19+
if self.approval_minimum and self.approval_maximum:
20+
if self.approval_minimum > self.approval_maximum:
21+
msg = f"approval_minimum {self.approval_minimum} > approval_maximum {self.approval_maximum}"
22+
raise ValueError(msg)
23+
return self
2424
return self
2525

2626
@model_validator(mode="after")
2727
def validate_iterations_have_unique_id(self) -> typing.Self:
2828
ids = [iteration.id for iteration in self.iterations]
2929
duplicates = {i_id for i_id, count in Counter(ids).items() if count > 1}
3030
if duplicates:
31-
raise ValueError(
32-
f"Iterations contain duplicate IDs: {', '.join(duplicates)}"
33-
)
31+
msg = f"Iterations contain duplicate IDs: {', '.join(duplicates)}"
32+
raise ValueError(msg)
3433
return self
3534

3635
@model_validator(mode="after")
3736
def validate_campaign_has_iteration_within_schedule(self) -> typing.Self:
3837
iterations_by_date = sorted(self.iterations, key=attrgetter("iteration_date"))
3938
if first_iteration := next(iter(iterations_by_date), None):
4039
if first_iteration.iteration_date < self.start_date:
41-
raise ValueError(
42-
f"Iteration {first_iteration.id} starts before campaign {self.id} "
43-
f"start date {self.start_date}."
44-
)
40+
msg = f"Iteration {first_iteration.id} starts before campaign {self.id} start date {self.start_date}."
41+
raise ValueError(msg)
42+
4543
if first_iteration.iteration_date > self.end_date:
46-
raise ValueError(
47-
f"Iteration {first_iteration.id} starts after campaign {self.id} "
48-
f"end date {self.end_date}."
49-
)
44+
msg = f"Iteration {first_iteration.id} starts after campaign {self.id} end date {self.end_date}."
45+
raise ValueError(msg)
46+
5047
return self
48+
5149
# Should never happen, since we are constraining self.iterations with a min_length of 1
52-
message = f"campaign {self.id} has no iterations."
53-
raise ValueError(message)
50+
msg = f"campaign {self.id} has no iterations."
51+
raise ValueError(msg)

tests/unit/validation/test_campaign_config_validator.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,12 @@ def test_validate_iterations_non_empty(self, valid_campaign_config_with_only_man
234234
errors = error.value.errors()
235235
assert any(e["loc"][-1] == "Iterations" for e in errors), "Expected validation error on 'Iterations'"
236236

237-
def test_unique_iteration_ids(self, valid_campaign_config_with_only_mandatory_fields, valid_iteration_with_only_mandatory_fields):
237+
def test_unique_iteration_ids(
238+
self, valid_campaign_config_with_only_mandatory_fields, valid_iteration_with_only_mandatory_fields
239+
):
238240
data = valid_campaign_config_with_only_mandatory_fields.copy()
239241
data["Iterations"].append(valid_iteration_with_only_mandatory_fields.copy())
240-
data["Iterations"][1]["ID"] = data["Iterations"][0]["ID"]
242+
data["Iterations"][1]["ID"] = data["Iterations"][0]["ID"]
241243
with pytest.raises(ValidationError) as exc_info:
242244
CampaignConfigValidation(**data)
243245

@@ -248,8 +250,9 @@ def test_unique_iteration_ids(self, valid_campaign_config_with_only_mandatory_fi
248250
duplicate_id = data["Iterations"][0]["ID"]
249251
assert f"Iterations contain duplicate IDs: {duplicate_id}" in error_message
250252

251-
252-
def test_error_approval_minimum_is_greater_than_approval_maximum(self, valid_campaign_config_with_only_mandatory_fields):
253+
def test_error_approval_minimum_is_greater_than_approval_maximum(
254+
self, valid_campaign_config_with_only_mandatory_fields
255+
):
253256
data = valid_campaign_config_with_only_mandatory_fields.copy()
254257
data["ApprovalMinimum"] = 2
255258
data["ApprovalMaximum"] = 1
@@ -261,15 +264,15 @@ def test_error_approval_minimum_is_greater_than_approval_maximum(self, valid_cam
261264
[
262265
(1, 2),
263266
(1, 1),
264-
]
267+
],
265268
)
266269
def test_approval_minimum_greater_than_approval_maximum_is_invalid(
267-
self, valid_campaign_config_with_only_mandatory_fields,
270+
self,
271+
valid_campaign_config_with_only_mandatory_fields,
268272
approval_min,
269273
approval_max,
270274
):
271275
data = valid_campaign_config_with_only_mandatory_fields.copy()
272276
data["ApprovalMinimum"] = approval_min
273277
data["ApprovalMaximum"] = approval_max
274278
CampaignConfigValidation(**data)
275-

0 commit comments

Comments
 (0)