Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/enapter/http/api/telemetry/labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ class Labels(collections.UserDict):

@classmethod
def parse(cls, s: str) -> Self:
return cls(kv.split("=") for kv in s.split(" "))
if not s:
return cls()
return cls(kv.split("=") for kv in s.split(" ") if kv)
Comment thread
rnovatorov marked this conversation as resolved.
Outdated

@property
def device(self) -> str:
Expand Down
Empty file.
27 changes: 27 additions & 0 deletions tests/unit/test_http/test_api/test_telemetry/test_labels.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from enapter.http.api.telemetry.labels import Labels


def test_parse_multiple_labels():
s = "device=foo telemetry=bar custom=baz"
labels = Labels.parse(s)
assert labels == {"device": "foo", "telemetry": "bar", "custom": "baz"}
assert labels.device == "foo"
assert labels.telemetry == "bar"


def test_parse_single_label():
s = "device=only"
labels = Labels.parse(s)
assert labels == {"device": "only"}
assert labels.device == "only"


def test_parse_empty_string():
labels = Labels.parse("")
assert labels == {}


def test_parse_multiple_spaces():
s = "device=foo telemetry=bar "
labels = Labels.parse(s)
assert labels == {"device": "foo", "telemetry": "bar"}
Loading