Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(e2e): fix idempotency tests #2576

Merged
merged 2 commits into from
Jun 27, 2023
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,10 @@ def _get_hashed_idempotency_key(self, data: Dict[str, Any]) -> Optional[str]:

@staticmethod
def is_missing_idempotency_key(data) -> bool:
if type(data).__name__ in ("tuple", "list", "dict"):
if isinstance(data, (tuple, list, dict)):
return all(x is None for x in data)
elif isinstance(data, (int, float, bool)):
return False
return not data

def _get_hashed_payload(self, data: Dict[str, Any]) -> str:
Expand Down
9 changes: 8 additions & 1 deletion tests/e2e/event_handler/infrastructure.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,14 @@ def _create_api_gateway_http(self, function: Function):
CfnOutput(self.stack, "APIGatewayHTTPUrl", value=(apigw.url or ""))

def _create_api_gateway_rest(self, function: Function):
apigw = apigwv1.RestApi(self.stack, "APIGatewayRest", deploy_options=apigwv1.StageOptions(stage_name="dev"))
apigw = apigwv1.RestApi(
self.stack,
"APIGatewayRest",
deploy_options=apigwv1.StageOptions(stage_name="dev"),
# disables creation of a role that is not destroyed due to a breaking change in CDK
# https://github.com/aws/aws-cdk/issues/22020
cloud_watch_role=False,
)

todos = apigw.root.add_resource("todos")
todos.add_method("POST", apigwv1.LambdaIntegration(function, proxy=True))
Expand Down
17 changes: 10 additions & 7 deletions tests/functional/idempotency/test_idempotency.py
Original file line number Diff line number Diff line change
Expand Up @@ -952,11 +952,6 @@ def test_is_missing_idempotency_key():
assert BasePersistenceLayer.is_missing_idempotency_key({})
# GIVEN an empty str THEN is_missing_idempotency_key is True
assert BasePersistenceLayer.is_missing_idempotency_key("")
# GIVEN False THEN is_missing_idempotency_key is True
assert BasePersistenceLayer.is_missing_idempotency_key(False)
# GIVEN number 0 THEN is_missing_idempotency_key is True
assert BasePersistenceLayer.is_missing_idempotency_key(0)

# GIVEN None THEN is_missing_idempotency_key is True
assert BasePersistenceLayer.is_missing_idempotency_key(None)
# GIVEN a list of Nones THEN is_missing_idempotency_key is True
Expand All @@ -966,15 +961,23 @@ def test_is_missing_idempotency_key():
# GIVEN a dict of Nones THEN is_missing_idempotency_key is True
assert BasePersistenceLayer.is_missing_idempotency_key({None: None})

# GIVEN True THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key(True) is False
# GIVEN False THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key(False) is False
# GIVEN number 0 THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key(0) is False
# GIVEN number 0.0 THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key(0.0) is False
# GIVEN a str THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key("Value") is False
# GIVEN str "False" THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key("False") is False
# GIVEN an number THEN is_missing_idempotency_key is False
# GIVEN a number THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key(1000) is False
# GIVEN a float THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key(10.01) is False
# GIVEN a list of all not None THEN is_missing_idempotency_key is False
# GIVEN a list with some items THEN is_missing_idempotency_key is False
assert BasePersistenceLayer.is_missing_idempotency_key([None, "Value"]) is False


Expand Down