def _process(self, sequence, producer): for operands in sequence: for name, value in operands: if value: packet = osc.decode(value) yield (('osc', packet), ('timetag', packet.timetag if not self._receipttime \ else datetime.datetime.now()))
def test_Bundle(self): timetag = datetime.datetime.now() bdl1 = osc.Bundle(timetag, (osc.Message(self.address,"is",1,"unittest"), osc.Message(self.address,"TFNIib",2,b"unittest"))) debug1 = io.StringIO() bdl1.debug(debug1) data1 = bdl1.encode() bdl2 = osc.decode(data1) debug2 = io.StringIO() bdl2.debug(debug2) data2 = bdl2.encode() self.assertEqual(bdl1.timetag, timetag) self.assertEqual(bdl2.timetag, timetag) self.assertIsInstance(str(bdl1), str) self.assertIsInstance(str(bdl2), str) self.assertEqual(data1, data2) self.assertEqual(debug1.getvalue(), debug2.getvalue())
def test_Message_bytes_argument(self): msg1 = osc.Message(self.address,None, b"unittest") debug1 = io.StringIO() msg1.debug(debug1) data1 = msg1.encode() msg2 = osc.decode(data1) debug2 = io.StringIO() msg2.debug(debug2) data2 = msg2.encode() self.assertEqual(msg1.address, self.address) self.assertEqual(msg2.address, self.address) self.assertIsInstance(str(msg1), str) self.assertIsInstance(str(msg2), str) self.assertEqual(data1, data2) self.assertIsNotNone(debug1.getvalue()) self.assertIsNotNone(debug2.getvalue()) self.assertEqual(msg1.address, msg2.address) self.assertEqual(msg1.arguments, msg2.arguments)
def test_Message_not_arguments_typetag(self): msg1 = osc.Message(self.address,"TFNIi",17) debug1 = io.StringIO() msg1.debug(debug1) data1 = msg1.encode() msg2 = osc.decode(data1) debug2 = io.StringIO() msg2.debug(debug2) data2 = msg2.encode() self.assertEqual(msg1.address, self.address) self.assertEqual(msg2.address, self.address) self.assertEqual(msg1.typetags, "TFNIi") self.assertEqual(msg2.typetags, "TFNIi") self.assertEqual(msg1.arguments, (17,)) self.assertEqual(msg2.arguments, (17,)) self.assertIsInstance(str(msg1), str) self.assertIsInstance(str(msg2), str) self.assertEqual(data1, data2) self.assertEqual(debug1.getvalue(), debug2.getvalue())
def test_Message_arguments(self): msg1 = osc.Message(self.address,"iifs",17,10,0.125,"unittest") debug1 = io.StringIO() msg1.debug(debug1) data1 = msg1.encode() msg2 = osc.decode(data1) debug2 = io.StringIO() msg2.debug(debug2) data2 = msg2.encode() self.assertEqual(msg1.address, self.address) self.assertEqual(msg2.address, self.address) self.assertEqual(msg1.typetags, "iifs") self.assertEqual(msg2.typetags, "iifs") self.assertEqual(msg1.arguments, (17,10,0.125,"unittest")) self.assertEqual(msg2.arguments, (17,10,0.125,"unittest")) self.assertIsInstance(str(msg1), str) self.assertIsInstance(str(msg2), str) self.assertEqual(data1, data2) self.assertEqual(debug1.getvalue(), debug2.getvalue())
def test_Message_bytes_no_typetag(self): msg1 = osc.Message(self.address,"b",b"unittest") debug1 = io.StringIO() msg1.debug(debug1) data1 = msg1.encode() msg2 = osc.decode(data1) debug2 = io.StringIO() msg2.debug(debug2) data2 = msg2.encode() self.assertEqual(msg1.address, self.address) self.assertEqual(msg2.address, self.address) self.assertEqual(msg1.typetags, "b") self.assertEqual(msg2.typetags, "b") self.assertEqual(msg1.arguments, (b"unittest",)) self.assertEqual(msg2.arguments, (b"unittest",)) self.assertIsInstance(str(msg1), str) self.assertIsInstance(str(msg2), str) self.assertEqual(data1, data2) self.assertEqual(debug1.getvalue(), debug2.getvalue())
def test_nested_Bundle(self): timetag = datetime.datetime.now() bdl1 = osc.Bundle(timetag, (osc.Bundle(None, (osc.Message(self.address,"i",1), osc.Message(self.address,"i",2))), osc.Message(self.address,"f",2.0))) debug1 = io.StringIO() bdl1.debug(debug1) data1 = bdl1.encode() bdl2 = osc.decode(data1) debug2 = io.StringIO() bdl2.debug(debug2) data2 = bdl2.encode() self.assertEqual(bdl1.timetag, timetag) self.assertEqual(bdl2.timetag, timetag) self.assertIsInstance(str(bdl1), str) self.assertIsInstance(str(bdl2), str) self.assertEqual(data1, data2) self.assertEqual(debug1.getvalue(), debug2.getvalue())
def decode(self, encoded): unslipped = self.unslip.decode(encoded) return tuple(osc.decode(obj) for obj in unslipped)