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
import pytest
from urllib.parse import quote
import moto.server as server
from moto import mock_iot
2019-10-31 15:44:26 +00:00
"""
Test the different server responses
2019-10-31 15:44:26 +00:00
"""
@mock_iot
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"),
],
)
@mock_iot
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"