def test_VariantUnion(self): value = TestUtility.getRandomInt() pv = PvObject({'v': ()}, {'v': PvInt(value)}) u = pv['v'][0] assert (u['value'] == value) value = TestUtility.getRandomString() pv['v'] = PvString(value) u = pv['v'][0] assert (u['value'] == value) value = TestUtility.getRandomFloat() pv.setUnion(PvFloat(value)) u = pv['v'][0] TestUtility.assertFloatEquality(u['value'], value)
def test_RestrictedUnion(self): value = TestUtility.getRandomInt() unionPv = PvObject({'i': INT}, {'i': value}) pv = PvObject({'v': ({ 'i': INT, 'f': FLOAT, 's': STRING }, )}, {'v': unionPv}) u = pv['v'][0] assert (u['i'] == value) value = TestUtility.getRandomString() unionPv = PvObject({'s': STRING}, {'s': value}) pv['v'] = unionPv u = pv['v'][0] assert (u['s'] == value) value = TestUtility.getRandomFloat() unionPv = PvObject({'f': FLOAT}, {'f': value}) pv.setUnion(unionPv) u = pv['v'][0] TestUtility.assertFloatEquality(u['f'], value)