Skip to content

Commit 952e9d8

Browse files
committed
Add tests for parameter metadata
1 parent 95614b8 commit 952e9d8

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from enum import StrEnum
2+
3+
from typing_extensions import assert_type
4+
5+
from qcodes.metadatable.metadatable_base import EmptyMetaDataModel
6+
from qcodes.parameters import Parameter
7+
from qcodes.parameters.parameter import ParameterSnapshot
8+
9+
10+
def test_parameter_typed_metadata_basic():
11+
12+
class ParamType(StrEnum):
13+
14+
voltage = "voltage"
15+
current = "current"
16+
17+
class MyParameterMetadata(EmptyMetaDataModel):
18+
param_type: ParamType
19+
20+
a = Parameter(
21+
name="myparam",
22+
set_cmd=None,
23+
get_cmd=None,
24+
model=ParameterSnapshot,
25+
metadata_model=MyParameterMetadata,
26+
)
27+
a.metadata["param_type"] = (
28+
ParamType.voltage
29+
) # TODO setting metadata should validate against the model
30+
value = 123
31+
a.set(value)
32+
33+
assert isinstance(a.typed_snapshot(), ParameterSnapshot)
34+
assert isinstance(a.typed_metadata(), MyParameterMetadata)
35+
36+
assert a.typed_metadata().param_type == ParamType.voltage
37+
assert a.typed_snapshot().value == value
38+
assert a.typed_snapshot().name == "myparam"
39+
40+
assert_type(
41+
a.typed_metadata(), MyParameterMetadata
42+
) # TODO this is only checked if the type checker runs agains the test
43+
assert_type(a.typed_snapshot(), ParameterSnapshot)

0 commit comments

Comments
 (0)