Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_websocket_get_group_items(dynamodb) -> None:
table_name = "test-table"
dynamodb.create_table(
TableName=table_name,
KeySchema=[{"AttributeName": "connectionId", "KeyType": "HASH"}],
AttributeDefinitions=[{"AttributeName": "connectionId", "AttributeType": "S"}],
ProvisionedThroughput={"ReadCapacityUnits": 5, "WriteCapacityUnits": 5},
)
groups = ["test-group"]
connection_table = ConnectionTable()
connection_table.update_item("test1234", groups=groups)
group_items = connection_table.get_group_items(groups[0])
assert group_items[0]["connectionId"] == "test1234"
"server": server,
"client": client,
"aws": {"event": event, "context": context},
}
connection_table = ConnectionTable()
status_code = connection_table.update_item(
connection_id, scope=json.dumps(scope)
)
if status_code != 200: # pragma: no cover
return make_response("Error", status_code=500)
return make_response("OK", status_code=200)
elif event_type == "MESSAGE":
connection_table = ConnectionTable()
item = connection_table.get_item(connection_id)
if not item: # pragma: no cover
return make_response("Error", status_code=500)
# Retrieve and deserialize the scope entry created in the connect event for
# the current connection.
scope = json.loads(item["scope"])
# Ensure the scope definition complies with the ASGI spec.
query_string = scope["query_string"]
headers = scope["headers"]
headers = [[k.encode(), v.encode()] for k, v in headers.items()]
query_string = query_string.encode()
scope.update({"headers": headers, "query_string": query_string})
asgi_cycle = ASGIWebSocketCycle(
{
"type": "websocket.receive",
"path": "/",
"bytes": None,
"text": event["body"],
}
)
try:
asgi_cycle(self.app)
except ASGIWebSocketCycleException: # pragma: no cover
return make_response("Error", status_code=500)
return make_response("OK", status_code=200)
elif event_type == "DISCONNECT":
connection_table = ConnectionTable()
status_code = connection_table.delete_item(connection_id)
if status_code != 200: # pragma: no cover
return make_response("WebSocket disconnect error.", status_code=500)
return make_response("OK", status_code=200)
return make_response("Error", status_code=500) # pragma: no cover
headers = event.get("headers", {})
root_path = event["requestContext"]["stage"]
scope = {
"type": "websocket",
"path": "/",
"headers": headers,
"raw_path": None,
"root_path": root_path,
"scheme": headers.get("X-Forwarded-Proto", "wss"),
"query_string": "",
"server": server,
"client": client,
"aws": {"event": event, "context": context},
}
connection_table = ConnectionTable()
status_code = connection_table.update_item(
connection_id, scope=json.dumps(scope)
)
if status_code != 200: # pragma: no cover
return make_response("Error", status_code=500)
return make_response("OK", status_code=200)
elif event_type == "MESSAGE":
connection_table = ConnectionTable()
item = connection_table.get_item(connection_id)
if not item: # pragma: no cover
return make_response("Error", status_code=500)
# Retrieve and deserialize the scope entry created in the connect event for