File: test_server.py

package info (click to toggle)
python-moto 5.1.18-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 116,520 kB
  • sloc: python: 636,725; javascript: 181; makefile: 39; sh: 3
file content (40 lines) | stat: -rw-r--r-- 994 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from urllib.parse import quote

import pytest

import moto.server as server
from moto import mock_aws

"""
Test the different server responses
"""


@mock_aws
def test_iotdata_list() -> None:
    backend = server.create_backend_app("iot-data")
    test_client = backend.test_client()

    # just making sure that server is up
    thing_name = "nothing"
    res = test_client.get(f"/things/{thing_name}/shadow")
    assert res.status_code == 404


@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"),
    ],
)
@mock_aws
def test_publish(url_encode_topic: bool) -> None:
    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

    result = test_client.post(f"/topics/{topic_for_path}")
    assert result.status_code == 200