2021-02-01 13:15:57 +00:00
|
|
|
import json
|
2023-07-31 21:50:24 +00:00
|
|
|
from urllib.parse import quote
|
2017-11-10 09:44:02 +00:00
|
|
|
|
2023-11-30 15:55:51 +00:00
|
|
|
import pytest
|
|
|
|
|
2017-11-10 09:44:02 +00:00
|
|
|
import moto.server as server
|
2024-01-07 12:03:33 +00:00
|
|
|
from moto import mock_aws
|
2017-11-10 09:44:02 +00:00
|
|
|
|
2019-10-31 15:44:26 +00:00
|
|
|
"""
|
2017-11-10 09:44:02 +00:00
|
|
|
Test the different server responses
|
2019-10-31 15:44:26 +00:00
|
|
|
"""
|
|
|
|
|
2017-11-10 09:44:02 +00:00
|
|
|
|
2024-01-07 12:03:33 +00:00
|
|
|
@mock_aws
|
2017-11-10 09:44:02 +00:00
|
|
|
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")
|
2023-07-31 21:50:24 +00:00
|
|
|
assert res.status_code == 200
|
2021-02-01 13:15:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
@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
|
2021-02-01 13:15:57 +00:00
|
|
|
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="")
|
|
|
|
|
2022-11-17 22:41:08 +00:00
|
|
|
result = test_client.post(f"/attached-policies/{certificate_arn}")
|
2023-07-31 21:50:24 +00:00
|
|
|
assert result.status_code == 200
|
2021-02-01 13:15:57 +00:00
|
|
|
result_dict = json.loads(result.data.decode("utf-8"))
|
2023-07-31 21:50:24 +00:00
|
|
|
assert result_dict["policies"][0]["policyName"] == "my-policy"
|