Skip to content

Commit 96ecdc1

Browse files
committed
fixup: adding gherkin tests for evaluations, and fxing found issues
Signed-off-by: Simon Schrottner <[email protected]>
1 parent f613c98 commit 96ecdc1

File tree

17 files changed

+402
-158
lines changed

17 files changed

+402
-158
lines changed

providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/in_process.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@ def resolve_float_details(
8484
evaluation_context: typing.Optional[EvaluationContext] = None,
8585
) -> FlagResolutionDetails[float]:
8686
result = self._resolve(key, default_value, evaluation_context)
87-
if not isinstance(result.value, float):
88-
result.value = float(result.value)
8987
return result
9088

9189
def resolve_integer_details(
@@ -95,8 +93,6 @@ def resolve_integer_details(
9593
evaluation_context: typing.Optional[EvaluationContext] = None,
9694
) -> FlagResolutionDetails[int]:
9795
result = self._resolve(key, default_value, evaluation_context)
98-
if not isinstance(result.value, int):
99-
result.value = int(result.value)
10096
return result
10197

10298
def resolve_object_details(

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,14 @@ def __init__(
3030
):
3131
self.flag_store = flag_store
3232
channel_factory = grpc.secure_channel if config.tls else grpc.insecure_channel
33-
self.channel = channel_factory(f"{config.host}:{config.port}")
33+
self.channel = channel_factory(
34+
f"{config.host}:{config.port}",
35+
options=(
36+
("grpc.max_reconnect_backoff_ms", 1000),
37+
("grpc.initial_reconnect_backoff_ms", 1000),
38+
("grpc.keepalive_time_ms", 1000),
39+
),
40+
)
3441
self.stub = sync_pb2_grpc.FlagSyncServiceStub(self.channel)
3542
self.timeout = config.timeout
3643
self.retry_backoff_seconds = config.retry_backoff_seconds
@@ -62,11 +69,10 @@ def shutdown(self) -> None:
6269
self.active = False
6370

6471
def sync_flags(self) -> None:
65-
request = sync_pb2.SyncFlagsRequest(selector=self.selector) # type:ignore[attr-defined]
66-
6772
retry_delay = self.retry_backoff_seconds
6873
while self.active:
6974
try:
75+
request = sync_pb2.SyncFlagsRequest(selector=self.selector) # type:ignore[attr-defined]
7076
logger.debug("Setting up gRPC sync flags connection")
7177
for flag_rsp in self.stub.SyncFlags(request):
7278
flag_str = flag_rsp.flag_configuration
@@ -107,4 +113,4 @@ def sync_flags(self) -> None:
107113
)
108114
logger.info(f"gRPC sync disconnected, reconnecting in {retry_delay}s")
109115
time.sleep(retry_delay)
110-
retry_delay = min(2 * retry_delay, self.MAX_BACK_OFF)
116+
retry_delay = min(2, self.MAX_BACK_OFF)

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ def from_dict(cls, key: str, data: dict) -> "Flag":
7272
data["default_variant"] = data["defaultVariant"]
7373
del data["defaultVariant"]
7474

75+
if "source" in data:
76+
del data["source"]
77+
if "selector" in data:
78+
del data["selector"]
7579
try:
7680
flag = cls(key=key, **data)
7781
return flag

providers/openfeature-provider-flagd/tests/e2e/conftest.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,22 @@
55
from tests.e2e.flagd_container import FlagdContainer
66
from tests.e2e.steps import * # noqa: F403
77

8-
from openfeature import api
9-
from openfeature.contrib.provider.flagd import FlagdProvider
10-
118
JsonPrimitive = typing.Union[str, bool, float, int]
129

1310

14-
@pytest.fixture(autouse=True, scope="package")
15-
def setup(request, port, image, resolver_type):
11+
@pytest.fixture(autouse=True, scope="module")
12+
def setup(request, port, image):
1613
container: DockerContainer = FlagdContainer(
1714
image=image,
1815
port=port,
1916
)
2017
# Setup code
2118
c = container.start()
22-
api.set_provider(
23-
FlagdProvider(
24-
resolver_type=resolver_type,
25-
port=int(container.get_exposed_port(port)),
26-
)
27-
)
2819

2920
def fin():
3021
c.stop()
3122

3223
# Teardown code
3324
request.addfinalizer(fin)
25+
26+
return c.get_exposed_port(port)

providers/openfeature-provider-flagd/tests/e2e/inprocess/file/conftest.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

providers/openfeature-provider-flagd/tests/e2e/inprocess/grpc/conftest.py

Lines changed: 0 additions & 49 deletions
This file was deleted.

providers/openfeature-provider-flagd/tests/e2e/inprocess/grpc/test_inprocess_grpc.py

Lines changed: 0 additions & 6 deletions
This file was deleted.

providers/openfeature-provider-flagd/tests/e2e/inprocess/grpc/test_inprocess_grpc_reconnect.py

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)