Toshiba / Mbed OS mbed-os-example-pelion
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers put.py Source File

put.py

00001 """
00002 Copyright 2019 ARM Limited
00003 Licensed under the Apache License, Version 2.0 (the "License");
00004 you may not use this file except in compliance with the License.
00005 You may obtain a copy of the License at
00006 
00007     http://www.apache.org/licenses/LICENSE-2.0
00008 
00009 Unless required by applicable law or agreed to in writing, software
00010 distributed under the License is distributed on an "AS IS" BASIS,
00011 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00012 See the License for the specific language governing permissions and
00013 limitations under the License.
00014 """
00015 
00016 # pylint: disable=missing-docstring,useless-super-delegation
00017 # pylint: disable=line-too-long,method-hidden,relative-import
00018 
00019 from icetea_lib.bench import TestStepFail
00020 from mbed_cloud.exceptions import CloudApiException
00021 from pelion_helper import PelionBase
00022 
00023 
00024 class Testcase(PelionBase):
00025     def __init__(self):
00026         PelionBase.__init__(self,
00027                             name="put",
00028                             title="Example application can perform basic CoAP operation (PUT)",
00029                             status="released",
00030                             type="acceptance",
00031                             component=["mbed_cloud_client_example"])
00032 
00033     def setup(self):
00034         super(Testcase, self).setup()
00035 
00036     def case(self):
00037         resource_path = '/3201/0/5853'
00038         # Write new value to custom resource (/3201/0/5853)
00039         self.logger.info("Testing PUT %s with value %s", self.pattern_value1, resource_path)
00040         try:
00041             self.connect_api.set_resource_value(device_id=self.device_id,
00042                                                 resource_path=resource_path,
00043                                                 resource_value=self.pattern_value1,
00044                                                 timeout=self.restTimeout)
00045         except CloudApiException as error:
00046             raise TestStepFail("PUT request failed with %d and msg %s" % (error.status, error.message))
00047 
00048         # Read and verify that new value is in effect
00049         try:
00050             pattern_value_new = self.connect_api.get_resource_value(device_id=self.device_id,
00051                                                                     resource_path=resource_path,
00052                                                                     timeout=self.restTimeout)
00053         except CloudApiException as error:
00054             raise TestStepFail("GET request failed with %d and msg %s" % (error.status, error.message))
00055 
00056         self.logger.info("Read back value %s for %s", pattern_value_new, resource_path)
00057 
00058         if self.pattern_value1 != pattern_value_new:
00059             raise TestStepFail("Pattern %s written does not match the pattern %s read back" % (self.pattern_value1,
00060                                                                                                pattern_value_new))
00061 
00062     def teardown(self):
00063         self.connect_api.stop_notifications()