コード例 #1
0
ファイル: test_object.py プロジェクト: sighttviewliu/Anjay
    def runTest(self):
        args = [(1, None), (1, b''), (2, b'1'), (3, b'12345'),
                (9, b'0' * 1024)]

        req = Lwm2mRead('/1337/1/4')
        self.serv.send(req)

        empty_array_tlv = TLV.make_multires(resource_id=4, instances=[])
        self.assertMsgEqual(
            Lwm2mContent.matching(req)(content=empty_array_tlv.serialize()),
            self.serv.recv())

        # perform the Execute with arguments
        exec_content = b','.join(
            b'%d' % k if v is None else b"%d='%s'" % (k, v) for k, v in args)
        req = Lwm2mExecute('/1337/1/2', content=exec_content)
        self.serv.send(req)

        self.assertMsgEqual(Lwm2mChanged.matching(req)(), self.serv.recv())

        # Exectue args should now be saved in the Execute Arguments array
        req = Lwm2mRead('/1337/1/4')
        self.serv.send(req)

        exec_args_tlv = TLV.make_multires(resource_id=4,
                                          instances=((k, v or b'')
                                                     for k, v in args))
        self.assertMsgEqual(
            Lwm2mContent.matching(req)(content=exec_args_tlv.serialize()),
            self.serv.recv())
コード例 #2
0
    def runTest(self):
        # 1. Discover is performed by the Server on /16, expecting '</16/0/0>' in the resulting payload
        linklist = self.discover(self.serv, oid=OID.Portfolio).content
        self.assertLinkListValid(linklist)
        self.assertIn(b'</16/0/0>', linklist.split(b','))

        # 2. Create is performed </16/1> with specified payload
        self.create_instance_with_payload(self.serv,
                                          oid=OID.Portfolio,
                                          iid=1,
                                          payload=[
                                              TLV.make_multires(
                                                  RID.Portfolio.Identity,
                                                  IDENTITIES_FOR_INSTANCE[1])
                                          ])
        # 3. Discover is performed by the Server on /16
        linklist = self.discover(self.serv, oid=OID.Portfolio).content
        self.assertLinkListValid(linklist)
        self.assertIn(b'</16/0/0>', linklist.split(b','))
        self.assertIn(b'</16/1/0>', linklist.split(b','))

        # 4. Read entire object.
        EXPECTED_TLV = TLV.make_instance(0, [ TLV.make_multires(RID.Portfolio.Identity, IDENTITIES_FOR_INSTANCE[0]) ]).serialize() \
                    + TLV.make_instance(1, [ TLV.make_multires(RID.Portfolio.Identity, IDENTITIES_FOR_INSTANCE[1]) ]).serialize()
        self.assertEqual(
            EXPECTED_TLV,
            self.read_object(self.serv, oid=OID.Portfolio).content)
コード例 #3
0
ファイル: test_object.py プロジェクト: sighttviewliu/Anjay
    def runTest(self):
        # ensure the array is empty
        req = Lwm2mRead('/1337/1/3')
        self.serv.send(req)

        empty_array_tlv = TLV.make_multires(resource_id=3, instances=[])
        self.assertMsgEqual(
            Lwm2mContent.matching(req)(content=empty_array_tlv.serialize()),
            self.serv.recv())

        # write something
        array_tlv = TLV.make_multires(
            resource_id=3,
            instances=[
                # (1, (0).to_bytes(0, byteorder='big')),
                (2, (12).to_bytes(1, byteorder='big')),
                (4, (1234).to_bytes(2, byteorder='big')),
            ])
        req = Lwm2mWrite('/1337/1/3',
                         array_tlv.serialize(),
                         format=coap.ContentFormat.APPLICATION_LWM2M_TLV)
        self.serv.send(req)

        self.assertMsgEqual(Lwm2mChanged.matching(req)(), self.serv.recv())

        # check updated content
        req = Lwm2mRead('/1337/1/3')
        self.serv.send(req)

        self.assertMsgEqual(
            Lwm2mContent.matching(req)(
                content=array_tlv.serialize(),
                format=coap.ContentFormat.APPLICATION_LWM2M_TLV),
            self.serv.recv())
コード例 #4
0
ファイル: portfolio.py プロジェクト: mizengfan/Anjay
 def setUp(self):
     super().setUp()
     self.create_instance(self.serv, oid=OID.Portfolio, iid=0)
     self.test_write(path=ResPath.Portfolio[0].Identity,
                     value=TLV.make_multires(RID.Portfolio.Identity,
                                             IDENTITIES_FOR_INSTANCE[0]).serialize(),
                     format=coap.ContentFormat.APPLICATION_LWM2M_TLV)