def test_02(self): """TestAttrCompBasic.test_02(): Creation of a template object and a partial object.""" sOut = BaseTestClasses.MockStreamWrite() RepCode.writeIDENT(RepCode.IDENTString(b'WEIGHT'), sOut) # FSINGL is code 2 RepCode.writeUSHORT(2, sOut) RepCode.writeUNITS(RepCode.UNITSString('KG'), sOut) # print('TRACE: sOut.bytes', sOut.bytes) sIn = BaseTestClasses.MockStreamRead(sOut.bytes) myTemplate = AttrComp.AttrCompStream(int('10110', 2), sIn) # print(myTemplate) self.assertEqual(RepCode.IDENTString(b'WEIGHT'), myTemplate.lable) self.assertEqual(b'WEIGHT', myTemplate.lable.payload) # Now create object sOut = BaseTestClasses.MockStreamWrite() RepCode.writeFSINGL(356.2, sOut) sIn = BaseTestClasses.MockStreamRead(sOut.bytes) myObject = myTemplate.readAsTemplate(int('00001', 2), sIn) # print(myObject) self.assertEqual(RepCode.IDENTString(b'WEIGHT'), myObject.lable) self.assertEqual(b'WEIGHT', myObject.lable.payload) self.assertEqual(1, myObject.count) self.assertEqual(2, myObject.repCode) self.assertEqual(RepCode.UNITSString(b'KG'), myObject.units) self.assertEqual(b'KG', myObject.units.payload) # self.assertEqual(356.2, myObject.value) self.assertAlmostEqual(356.2, myObject.value, 2)
def test_01(self): """TestAttrCompBasic.test_01(): Simple creation of a single template object.""" sOut = BaseTestClasses.MockStreamWrite() RepCode.writeIDENT(RepCode.IDENTString(b'WEIGHT'), sOut) # FSINGL is code 2 RepCode.writeUSHORT(2, sOut) RepCode.writeUNITS(RepCode.UNITSString('KG'), sOut) sIn = BaseTestClasses.MockStreamRead(sOut.bytes) myTemplate = AttrComp.AttrCompStream(int('10110', 2), sIn) # print(myTemplate) self.assertEqual(RepCode.IDENTString(b'WEIGHT'), myTemplate.lable) self.assertEqual(b'WEIGHT', myTemplate.lable.payload) self.assertEqual(2, myTemplate.repCode) self.assertEqual(RepCode.UNITSString(b'KG'), myTemplate.units) self.assertEqual(b'KG', myTemplate.units.payload)
class TestIDENT(TestRepCodeBase): """Tests the IDENT Representation Code number 19.""" NUM = 19 CASES = ( (RepCode.IDENTString(b''), b'\x00'), (RepCode.IDENTString(b'TYPE1'), b'\x05TYPE1'), ) def setUp(self): pass def tearDown(self): pass def test_00(self): """Tests IDENT properties in RC_TABLE.""" rte = RepCode.RC_TABLE[self.NUM] self.assertEquals(self.NUM, rte.Code) self.assertEquals('IDENT', rte.SymbolicName) self.assertEquals('Variable-length identifier', rte.Description) self.assertEquals('STRING', rte.Class) self.assertEquals('S', rte.Type) self.assertEquals(-1, rte.Size) def test_01(self): """Tests IDENT edge values write/read.""" for v, b in self.CASES: sOut = BaseTestClasses.MockStreamWrite() RepCode.writeIDENT(v, sOut) self.assertEqual(sOut.bytes, b) sIn = BaseTestClasses.MockStreamRead(sOut.bytes) vR = RepCode.readIDENT(sIn) self.assertEqual(v, vR) def test_02(self): """Tests IDENT edge values write/read - indirect.""" self._indirectTest()