From cfc994d0aeb2f06f20ffae70554724db820fafe7 Mon Sep 17 00:00:00 2001 From: Toshiya Kawasaki Date: Sat, 25 Nov 2017 02:22:53 +0900 Subject: [PATCH] Add publish operation to iotdata (#1362) * add publish operation to iotdata * restart ci --- moto/iotdata/models.py | 4 ++++ moto/iotdata/responses.py | 11 +++++++++++ tests/test_iotdata/test_iotdata.py | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/moto/iotdata/models.py b/moto/iotdata/models.py index 7ae517109..ad4caa89e 100644 --- a/moto/iotdata/models.py +++ b/moto/iotdata/models.py @@ -184,6 +184,10 @@ class IoTDataPlaneBackend(BaseBackend): thing.thing_shadow = new_shadow return thing.thing_shadow + def publish(self, topic, qos, payload): + # do nothing because client won't know about the result + return None + available_regions = boto3.session.Session().get_available_regions("iot-data") iotdata_backends = {region: IoTDataPlaneBackend(region) for region in available_regions} diff --git a/moto/iotdata/responses.py b/moto/iotdata/responses.py index d87479011..8ab724ed1 100644 --- a/moto/iotdata/responses.py +++ b/moto/iotdata/responses.py @@ -33,3 +33,14 @@ class IoTDataPlaneResponse(BaseResponse): thing_name=thing_name, ) return json.dumps(payload.to_dict()) + + def publish(self): + topic = self._get_param("topic") + qos = self._get_int_param("qos") + payload = self._get_param("payload") + self.iotdata_backend.publish( + topic=topic, + qos=qos, + payload=payload, + ) + return json.dumps(dict()) diff --git a/tests/test_iotdata/test_iotdata.py b/tests/test_iotdata/test_iotdata.py index 5768d31c7..09c1ada4c 100644 --- a/tests/test_iotdata/test_iotdata.py +++ b/tests/test_iotdata/test_iotdata.py @@ -85,3 +85,9 @@ def test_update(): payload.should.have.key('metadata').which.should.have.key('desired').which.should.have.key('led') payload.should.have.key('version').which.should.equal(2) payload.should.have.key('timestamp') + + +@mock_iotdata +def test_publish(): + client = boto3.client('iot-data', region_name='ap-northeast-1') + client.publish(topic='test/topic', qos=1, payload=b'')