Skip to content

Commit 2b84577

Browse files
committed
Datapoint: Ignore t1 value when passed.
Required for "set value" endpoint. Fixes broken tests.
1 parent c186b9e commit 2b84577

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

dp3/common/datapoint.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from ipaddress import IPv4Address, IPv6Address
33
from typing import Annotated, Any, Optional, Union
44

5-
from pydantic import BaseModel, Field, PlainSerializer
5+
from pydantic import BaseModel, BeforeValidator, Field, PlainSerializer
66

77
from dp3.common.types import T2Datetime
88

@@ -13,6 +13,11 @@ def to_json_friendly(v):
1313
return v
1414

1515

16+
def ignore_value(_v):
17+
"""Ignore the passed value and return None."""
18+
return None
19+
20+
1621
class DataPointBase(BaseModel, use_enum_values=True):
1722
"""Data-point
1823
@@ -44,7 +49,7 @@ class DataPointPlainBase(DataPointBase):
4449
the same naming for simplicity.
4550
"""
4651

47-
t1: None = None
52+
t1: Annotated[None, BeforeValidator(ignore_value)] = None
4853
t2: None = None
4954

5055

tests/test_api/test_set_attr_value.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
class SetEidAttrValue(common.APITest):
99
def test_invalid_payload(self):
1010
response = self.post_request(TESTED_PATH.format(action="set"), json={})
11-
self.assertEqual(response.status_code, 422)
11+
self.assertEqual(response.status_code, 422, msg=response.json())
1212

1313
def test_valid_payload(self):
1414
payload = EntityEidAttrValue(value="Test string val1")
1515
response = self.post_request(
1616
TESTED_PATH.format(action="set"), data=payload.model_dump_json()
1717
)
18-
self.assertEqual(response.status_code, 200)
18+
self.assertEqual(response.status_code, 200, msg=response.json())
1919

2020
expected = EntityEidAttrValueOrHistory(attr_type=1, current_value="Test string val1")
2121
self.query_expected_value(

0 commit comments

Comments
 (0)