Skip to content

Commit a6d8715

Browse files
committed
fix format, add tests
Signed-off-by: christian.lutnik <[email protected]>
1 parent ed1f91f commit a6d8715

File tree

2 files changed

+45
-2
lines changed
  • providers/openfeature-provider-flagd

2 files changed

+45
-2
lines changed

providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/flags.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ def _validate_metadata(key: str, value: typing.Union[float, int, str, bool]) ->
1717
+ " must be of type str, but is "
1818
+ str(type(key))
1919
)
20+
elif not key:
21+
raise ParseError("key must not be empty")
2022
if value is None:
2123
raise ParseError("Metadata value for key " + str(key) + " must be set")
2224
elif not isinstance(value, (float, int, str, bool)):
@@ -110,7 +112,6 @@ def __post_init__(self) -> None:
110112
for key, value in self.metadata.items():
111113
_validate_metadata(key, value)
112114

113-
114115
@classmethod
115116
def from_dict(cls, key: str, data: dict) -> "Flag":
116117
if "defaultVariant" in data:

providers/openfeature-provider-flagd/tests/test_metadata.py

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
from openfeature.contrib.provider.flagd import FlagdProvider
99
from openfeature.contrib.provider.flagd.config import ResolverType
1010
from openfeature.event import EventDetails, ProviderEvent
11-
from openfeature.exception import ErrorCode
11+
from openfeature.exception import ErrorCode, ParseError
12+
13+
from openfeature.contrib.provider.flagd.resolvers.process.flags import _validate_metadata
1214

1315

1416
def create_client(file_name):
@@ -103,3 +105,43 @@ def test_invalid_flag_set_metadata(file_name):
103105
if now - start > max_timeout:
104106
raise AssertionError()
105107
sleep(0.01)
108+
109+
110+
def test_validate_metadata_with_none_key():
111+
try:
112+
_validate_metadata(None, "a")
113+
except ParseError:
114+
return
115+
raise AssertionError()
116+
117+
118+
def test_validate_metadata_with_empty_key():
119+
try:
120+
_validate_metadata("", "a")
121+
except ParseError:
122+
return
123+
raise AssertionError()
124+
125+
126+
def test_validate_metadata_with_non_string_key():
127+
try:
128+
_validate_metadata(1, "a")
129+
except ParseError:
130+
return
131+
raise AssertionError()
132+
133+
134+
def test_validate_metadata_with_non_string_value():
135+
try:
136+
_validate_metadata("a", [])
137+
except ParseError:
138+
return
139+
raise AssertionError()
140+
141+
142+
def test_validate_metadata_with_none_value():
143+
try:
144+
_validate_metadata("a", None)
145+
except ParseError:
146+
return
147+
raise AssertionError()

0 commit comments

Comments
 (0)