def test_read_write_multiple_resources_same_instance(self): # test that multiple resources from the same instance can be set and retrieved with a single command timezone = "ACME Corp." currentTime = 123456789 result = server_write(self.config, "/3/0/15=\"%s\"" % (timezone,), "/3/0/13=%d" % (currentTime,)) self.assertEqual("", result.stderr) self.assertEqual("", result.stdout) self.assertEqual(0, result.code) expectedStdout = "Device[/3/0]:\n Timezone[/3/0/15]: %s\n"% (timezone, ) expectedStderr = "" expectedCode = 0 #result = server_read(self.config, "/3/0/15", "/3/0/13") result = server_read(self.config, "/3/0/15") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code) expectedStdout = "Device[/3/0]:\n CurrentTime[/3/0/13]: %s\n"% (currentTime, ) result = server_read(self.config, "/3/0/13") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_read_write_only_resource(self): # test that we can't read from a write only resource customObjects = ( CustomObject("Object1001", 1001, False, "single", ( CustomResource("Resource100", 100, "string", "single", "mandatory", "w"), )), ) #define and set the write only object params = tools_common.create_define_command(customObjects) result = client_define(self.config, *params) self.assertEqual(0, result.code) result = server_define(self.config, *params) self.assertEqual(0, result.code) result = server_write(self.config, "--create /1001/0") self.assertEqual("", result.stderr) self.assertEqual("", result.stdout) self.assertEqual(0, result.code) result = server_write(self.config, "/1001/0/100=abc") self.assertEqual("", result.stderr) self.assertEqual("", result.stdout) self.assertEqual(0, result.code) expectedStdout = "" expectedStderr = "AwaServerReadOperation_Perform failed\nFailed to read from path /1001/0/100: AwaLWM2MError_MethodNotAllowed\n" expectedCode = 1 # attempt to read a write only object, should fail result = server_read(self.config, "/1001/0/100") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_read_write_only_resource(self): # test that we can't read from a write only resource customObjects = ( CustomObject("Object1001", 1001, False, "single", ( CustomResource("Resource100", 100, "string", "single", "optional", "w"), )), ) #define and set the write only object params = tools_common.create_define_command(customObjects) result = client_define(self.config, *params) self.assertEqual(0, result.code) result = server_define(self.config, *params) self.assertEqual(0, result.code) result = server_write(self.config, "--create /1001/0") self.assertEqual("", result.stderr) self.assertEqual("", result.stdout) self.assertEqual(0, result.code) result = server_write(self.config, "/1001/0/100=abc") self.assertEqual("", result.stderr) self.assertEqual("", result.stdout) self.assertEqual(0, result.code) expectedStdout = "" expectedStderr = "AwaServerReadOperation_Perform failed\nFailed to read from path /1001/0/100: AwaLWM2MError_MethodNotAllowed\n" expectedCode = 1 # attempt to read a write only object, should fail result = server_read(self.config, "/1001/0/100") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_read_single_resource_none(self): # test that a single none resource (executable) cannot be retrieved expectedStdout = "" expectedStderr = "AwaServerReadOperation_Perform failed\nFailed to read from path /1000/0/107: AwaLWM2MError_BadRequest\n" expectedCode = 1 result = server_read(self.config, "/1000/0/107") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_read_write_invalid_value(self): # first set an initial value for an integer resource. # Then set the integer resource with a string value. Currently will set the value to 0 expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/101=12345") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Object1000[/1000/0]:\n Resource101[/1000/0/101]: 12345\n" expectedStderr = "" expectedCode = 0 result = server_read(self.config, "/1000/0/101") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/101=abc") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Object1000[/1000/0]:\n Resource101[/1000/0/101]: 0\n" expectedStderr = "" expectedCode = 0 result = server_read(self.config, "/1000/0/101") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_objlink(self): # test that a single object link resource can be set and retrieved link = "/3/0" expectedStdout = "Object1000[/1000/0]:\n Resource106[/1000/0/106]: ObjectLink[%s]\n" % (link.strip('/').replace('/', ':')) expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/106=\"%s\"" % (link,)) self.assertEqual(expectedCode, result.code) result = server_read(self.config, "/1000/0/106") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_time(self): # test that a single time resource (64 bit integer) can be set and retrieved value = 1442972971 expectedStdout = "Object1000[/1000/0]:\n Resource104[/1000/0/104]: %d\n" % (value,) expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/104=%d" % (value,)) self.assertEqual(expectedCode, result.code) result = server_read(self.config, "/1000/0/104") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_string(self): # test that a single string resource can be set and retrieved manufacturer = "ACME Corp." expectedStdout = "Object1000[/1000/0]:\n Resource100[/1000/0/100]: %s\n" % (manufacturer,) expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/100=\"%s\"" % (manufacturer,)) self.assertEqual(expectedCode, result.code) result = server_read(self.config, "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_client_set_server_read_single_resource(self): # test that a single resource can be written on the client and retrieved on the server manufacturer = "ACME Corp." expectedStdout = "Object1000[/1000/0]:\n Resource100[/1000/0/100]: %s\n" % (manufacturer,) expectedStderr = "" expectedCode = 0 result = client_set(self.config, "/1000/0/100=\"%s\"" % (manufacturer,)) self.assertEqual(0, result.code) result = server_read(self.config, "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_integer(self): # test that a single integer resource can be set and retrieved value = 3 expectedStdout = "Object1000[/1000/0]:\n Resource101[/1000/0/101]: %d\n" % (value,) expectedStderr = "" expectedCode = 0 result = server_write(self.config, "--verbose /1000/0/101=%d" % (value,)) self.assertEqual(expectedCode, result.code) result = server_read(self.config, "/1000/0/101") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_float(self): # test that a single float resource can be set and retrieved value = 3.5 expectedStdout = "Object1000[/1000/0]:\n Resource102[/1000/0/102]: %.1f\n" % (value,) expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/102=%f" % (value,)) self.assertEqual(expectedCode, result.code) result = server_read(self.config, "/1000/0/102") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_delete_read(self): # test that we can no longer read the value of a resource after it has been deleted expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/100=abc") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Object1000[/1000/0]:\n Resource100[/1000/0/100]: abc\n" expectedStderr = "" expectedCode = 0 result = server_read(self.config, "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_delete(self.config, "/1000/0") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "" expectedStderr = "AwaServerReadOperation_Perform failed\nFailed to read from path /1000/0/100: AwaLWM2MError_NotFound\n" expectedCode = 1 result = server_read(self.config, "/1000/0/100") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_client_set_server_read_single_resource(self): # test that a single resource can be written on the client and retrieved on the server manufacturer = "ACME Corp." expectedStdout = "Object1000[/1000/0]:\n Resource100[/1000/0/100]: %s\n" % ( manufacturer, ) expectedStderr = "" expectedCode = 0 result = client_set(self.config, "/1000/0/100=\"%s\"" % (manufacturer, )) self.assertEqual(0, result.code) result = server_read(self.config, "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_multiple_resources_different_instances(self): # test that multiple resources from different instances can be set and retrieved with a single command timezone = "ACME Corp." modelNumber = "1234567890" expectedStdout = \ """ Timezone[3/0/15]: %s Resource100[1000/0/100]: %s """ % (timezone, modelNumber) expectedStderr = "" expectedCode = 0 server_write(self.config, "/3/0/15=\"%s\"" % (timezone,), "/1000/0/100=\"%s\"" % (modelNumber,)) result = server_read(self.config, "/3/0/15", "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_boolean_numbers(self): # test correct values for setting boolean resource with integers: 0,1,2 (False,True,True) for value in range(3): expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/103=%d" % (value,)) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Object1000[/1000/0]:\n Resource103[/1000/0/103]: %r\n" % (bool(value),) #print "Boolean expectedStdout: %s" % (expectedStdout,) result = server_read(self.config, "/1000/0/103") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write(self): # test that a single resource can be set and retrieved expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/3/0/15=abc") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Device[/3/0]:\n Timezone[/3/0/15]: abc\n" expectedStderr = "" expectedCode = 0 result = server_read(self.config, "/3/0/15") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_boolean_true(self): # test that a single boolean resource can be set and retrieved value = True expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/103=%r" % (value,)) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Object1000[/1000/0]:\n Resource103[/1000/0/103]: %r\n" % (value,) result = server_read(self.config, "/1000/0/103") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_read_write_single_resource_boolean_false(self): # test that a single boolean resource can be set and retrieved value = False expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/103=%r" % (value,)) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "Object1000[/1000/0]:\n Resource103[/1000/0/103]: %r\n" % (value,) result = server_read(self.config, "/1000/0/103") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_client_set_server_read_multiple_resources_different_instances_single_read_operation(self): # test that multiple resources from the different instances can be set on # the client and retrieved on the server with single commands manufacturer = "ACME Corp." modelNumber = "1234567890" expectedStdout = \ """ Manufacturer[3/0/0]: %s Resource100[1000/0/100]: %s """ % (manufacturer, modelNumber) expectedStderr = "" expectedCode = 0 result = client_set(self.config, "/3/0/0=\"%s\"" % (manufacturer,), "/1000/0/100=\"%s\"" % (modelNumber,)) self.assertEqual("", result.stdout) self.assertEqual("", result.stderr) self.assertEqual(0, result.code) result = server_read(self.config, "/3/0/0", "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_client_set_server_read_multiple_resources_same_instance(self): # test that multiple resources from the same instance can be set on # the client and retrieved on the server with single commands manufacturer = "ACME Corp." memoryFree = 55 temperature = 24.6 expectedStdout = \ """ Manufacturer[1000/0/100]: %s ModelNumber[1000/0/101]: %s MemoryFree[1000/0/102]: %d """ % (manufacturer, memoryFree, temperature) expectedStderr = "" expectedCode = 0 result = client_set(self.config, "/1000/0/100=\"%s\"" % (manufacturer,), "/1000/0/101=\"%d\"" % (memoryFree,), "/1000/0/102=%f" % (temperature,)) result = server_read(self.config, "/1000/0/100", "/1000/0/101", "/1000/0/102") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_client_set_server_read_multiple_resources_different_instances_single_read_operation( self): # test that multiple resources from the different instances can be set on # the client and retrieved on the server with single commands manufacturer = "ACME Corp." modelNumber = "1234567890" expectedStdout = \ """ Manufacturer[3/0/0]: %s Resource100[1000/0/100]: %s """ % (manufacturer, modelNumber) expectedStderr = "" expectedCode = 0 result = client_set(self.config, "/3/0/0=\"%s\"" % (manufacturer, ), "/1000/0/100=\"%s\"" % (modelNumber, )) self.assertEqual("", result.stdout) self.assertEqual("", result.stderr) self.assertEqual(0, result.code) result = server_read(self.config, "/3/0/0", "/1000/0/100") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code)
def test_server_read_deleted_instance(self): expectedStdout = "" expectedStderr = "" expectedCode = 0 result = server_write(self.config, "/1000/0/100=abc") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) result = server_delete(self.config, "/1000/0") self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedCode, result.code) expectedStdout = "" expectedStderr = "AwaServerReadOperation_Perform failed\nFailed to read from path /1000/0/100: AwaLWM2MError_NotFound\n" expectedCode = 1 result = server_read(self.config, "/1000/0/100") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)
def test_client_set_server_read_multiple_resources_same_instance(self): # test that multiple resources from the same instance can be set on # the client and retrieved on the server with single commands manufacturer = "ACME Corp." memoryFree = 55 temperature = 24.6 expectedStdout = \ """ Manufacturer[1000/0/100]: %s ModelNumber[1000/0/101]: %s MemoryFree[1000/0/102]: %d """ % (manufacturer, memoryFree, temperature) expectedStderr = "" expectedCode = 0 result = client_set(self.config, "/1000/0/100=\"%s\"" % (manufacturer, ), "/1000/0/101=\"%d\"" % (memoryFree, ), "/1000/0/102=%f" % (temperature, )) result = server_read(self.config, "/1000/0/100", "/1000/0/101", "/1000/0/102") self.assertEqual(expectedStderr, result.stderr) self.assertEqual(expectedStdout, result.stdout) self.assertEqual(expectedCode, result.code)