2021-07-26 06:40:39 +00:00
|
|
|
from urllib.parse import quote
|
2021-02-01 13:15:57 +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_iotdata_list():
|
|
|
|
backend = server.create_backend_app("iot-data")
|
|
|
|
test_client = backend.test_client()
|
|
|
|
|
|
|
|
# just making sure that server is up
|
2019-10-31 15:44:26 +00:00
|
|
|
thing_name = "nothing"
|
2022-11-17 22:41:08 +00:00
|
|
|
res = test_client.get(f"/things/{thing_name}/shadow")
|
2023-08-09 07:37:49 +00:00
|
|
|
assert res.status_code == 404
|
2021-02-01 13:15:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"url_encode_topic",
|
|
|
|
[
|
|
|
|
pytest.param(True, id="Topic in Path is URL encoded"),
|
|
|
|
pytest.param(False, id="Topic 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_publish(url_encode_topic):
|
|
|
|
backend = server.create_backend_app("iot-data")
|
|
|
|
test_client = backend.test_client()
|
|
|
|
|
|
|
|
topic = "test/topic"
|
|
|
|
topic_for_path = quote(topic, safe="") if url_encode_topic else topic
|
|
|
|
|
2022-11-17 22:41:08 +00:00
|
|
|
result = test_client.post(f"/topics/{topic_for_path}")
|
2023-08-09 07:37:49 +00:00
|
|
|
assert result.status_code == 200
|