Skip to content

Commit 630a4f5

Browse files
use variable for error message matching instead of comparing raw strings
1 parent 8107044 commit 630a4f5

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/anyvlm/schemas/vlm.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Schemas relating to VLM API."""
22

3-
from typing import Literal, Self
3+
from typing import ClassVar, Literal, Self
44

55
from pydantic import BaseModel, Field, model_validator
66

@@ -121,6 +121,10 @@ class VlmResponse(BaseModel):
121121
responseSummary: ResponseSummary
122122
response: ResponseField
123123

124+
resultset_id_error_message_base: ClassVar[str] = (
125+
"Invalid ResultSet id - ids must be in form '<node_id> <zygosity>'"
126+
)
127+
124128
@model_validator(mode="after")
125129
def validate_resultset_ids(self) -> Self:
126130
"""Ensure each ResultSet.id is correctly constructed."""
@@ -133,18 +137,18 @@ def validate_resultset_ids(self) -> Self:
133137
try:
134138
node_id, zygosity = result_set.id.split(" ")
135139
except ValueError as e:
136-
error_message = f"Invalid ResultSet id - ids must be in form '<node_id> <zygosity>', but provided id of {result_set.id} contains invalid formatting"
140+
error_message = f"{self.resultset_id_error_message_base}, but provided id of {result_set.id} contains invalid formatting"
137141
raise ValueError(error_message) from e
138142

139143
if node_id not in handover_ids:
140-
error_message = f"Invalid ResultSet id - ids must be in form '<node_id> <zygosity>', but provided node_id of {node_id} does not match any `handoverType.id` provided in `self.beaconHandovers`"
144+
error_message = f"{self.resultset_id_error_message_base}, but provided node_id of {node_id} does not match any `handoverType.id` provided in `self.beaconHandovers`"
141145
raise ValueError(error_message)
142146

143147
try:
144148
Zygosity(zygosity)
145149
except ValueError as e:
146150
valid_zygosity_values = {zygosity.value for zygosity in Zygosity}
147-
error_message = f"Invalid ResultSet id - ids must be in form '<node_id> <zygosity>', but provided zygosity of {zygosity} is not found in allowable value set of: {', '.join(valid_zygosity_values)}"
151+
error_message = f"{self.resultset_id_error_message_base}, but provided zygosity of {zygosity} is not found in allowable value set of: {', '.join(valid_zygosity_values)}"
148152
raise ValueError(error_message) from e
149153

150154
return self

tests/unit/test_schemas.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Test schema validation functionality"""
22

3+
import re
4+
35
import pytest
46

57
from anyvlm.schemas.vlm import (
@@ -84,6 +86,6 @@ def test_invalid_resultset_ids(response_summary, responses_with_invalid_resultse
8486
for response in responses_with_invalid_resultset_ids:
8587
with pytest.raises(
8688
ValueError,
87-
match=r"^Invalid ResultSet id - ids must be in form '<node_id> <zygosity>'",
89+
match=re.escape(VlmResponse.resultset_id_error_message_base),
8890
):
8991
VlmResponse(responseSummary=response_summary, response=response)

0 commit comments

Comments
 (0)