moto/tests/test_iot/test_server.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

50 lines
1.4 KiB
Python
Raw Normal View History

import json
from urllib.parse import quote
import pytest
import moto.server as server
2024-01-07 12:03:33 +00:00
from moto import mock_aws
2019-10-31 15:44:26 +00:00
"""
Test the different server responses
2019-10-31 15:44:26 +00:00
"""
2024-01-07 12:03:33 +00:00
@mock_aws
def test_iot_list():
backend = server.create_backend_app("iot")
test_client = backend.test_client()
# just making sure that server is up
res = test_client.get("/things")
assert res.status_code == 200
@pytest.mark.parametrize(
"url_encode_arn",
[
pytest.param(True, id="Target Arn in Path is URL encoded"),
pytest.param(False, id="Target Arn in Path is *not* URL encoded"),
],
)
2024-01-07 12:03:33 +00:00
@mock_aws
def test_list_attached_policies(url_encode_arn):
backend = server.create_backend_app("iot")
test_client = backend.test_client()
result = test_client.post("/keys-and-certificate?setAsActive=true")
result_dict = json.loads(result.data.decode("utf-8"))
certificate_arn = result_dict["certificateArn"]
test_client.post("/policies/my-policy", json={"policyDocument": {}})
test_client.put("/target-policies/my-policy", json={"target": certificate_arn})
if url_encode_arn:
certificate_arn = quote(certificate_arn, safe="")
result = test_client.post(f"/attached-policies/{certificate_arn}")
assert result.status_code == 200
result_dict = json.loads(result.data.decode("utf-8"))
assert result_dict["policies"][0]["policyName"] == "my-policy"