Added report generator for thingsboard
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import os
|
||||
|
||||
import boto3
|
||||
import pytest
|
||||
import requests
|
||||
|
||||
"""
|
||||
Make sure env variable AWS_SAM_STACK_NAME exists with the name of the stack we are going to test.
|
||||
"""
|
||||
|
||||
|
||||
class TestApiGateway:
|
||||
|
||||
@pytest.fixture()
|
||||
def api_gateway_url(self):
|
||||
""" Get the API Gateway URL from Cloudformation Stack outputs """
|
||||
stack_name = os.environ.get("AWS_SAM_STACK_NAME")
|
||||
|
||||
if stack_name is None:
|
||||
raise ValueError('Please set the AWS_SAM_STACK_NAME environment variable to the name of your stack')
|
||||
|
||||
client = boto3.client("cloudformation")
|
||||
|
||||
try:
|
||||
response = client.describe_stacks(StackName=stack_name)
|
||||
except Exception as e:
|
||||
raise Exception(
|
||||
f"Cannot find stack {stack_name} \n" f'Please make sure a stack with the name "{stack_name}" exists'
|
||||
) from e
|
||||
|
||||
stacks = response["Stacks"]
|
||||
stack_outputs = stacks[0]["Outputs"]
|
||||
api_outputs = [output for output in stack_outputs if output["OutputKey"] == "HelloWorldApi"]
|
||||
|
||||
if not api_outputs:
|
||||
raise KeyError(f"HelloWorldAPI not found in stack {stack_name}")
|
||||
|
||||
return api_outputs[0]["OutputValue"] # Extract url from stack outputs
|
||||
|
||||
def test_api_gateway(self, api_gateway_url):
|
||||
""" Call the API Gateway endpoint and check the response """
|
||||
response = requests.get(api_gateway_url)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"message": "hello world"}
|
||||
Reference in New Issue
Block a user