X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fbindings%2Fpython%2Fbt2%2Ftest_field.py;h=429fe2eea37089444eefd1e38b8e4778f99f25a1;hb=cec0261d56a42e810f56b39fcefbe33987c8aab8;hp=174ae2d9ca9d44839099d795dd2d43fd3d34e892;hpb=c25f8e53dc25a23d21d3e54a171b4c2dee0bd7eb;p=babeltrace.git diff --git a/tests/bindings/python/bt2/test_field.py b/tests/bindings/python/bt2/test_field.py index 174ae2d9..429fe2ee 100644 --- a/tests/bindings/python/bt2/test_field.py +++ b/tests/bindings/python/bt2/test_field.py @@ -1823,6 +1823,77 @@ class StructureFieldTestCase(unittest.TestCase): self.assertTrue(expected_string_found) +class OptionFieldTestCase(unittest.TestCase): + def _create_fc(self, tc): + fc = tc.create_option_field_class(tc.create_string_field_class()) + top_fc = tc.create_structure_field_class() + top_fc.append_member('opt_field', fc) + return top_fc + + def setUp(self): + self._tc = get_default_trace_class() + fld = _create_field(self._tc, self._create_fc(self._tc)) + self._def = fld['opt_field'] + + def test_value_prop(self): + self._def.value = 'hiboux' + self.assertEqual(self._def.field, 'hiboux') + self.assertTrue(self._def.has_field) + + def test_has_field_prop_true(self): + self._def.has_field = True + self.assertTrue(self._def.has_field) + + def test_has_field_prop_true(self): + self._def.has_field = False + self.assertFalse(self._def.has_field) + + def test_bool_op_true(self): + self._def.value = 'allo' + self.assertTrue(self._def) + + def test_bool_op_true(self): + self._def.has_field = False + self.assertFalse(self._def) + + def test_field_prop_existing(self): + self._def.value = 'meow' + field = self._def.field + self.assertEqual(field, 'meow') + + def test_field_prop_none(self): + self._def.has_field = False + field = self._def.field + self.assertIsNone(field) + + def test_field_prop_existing_then_none(self): + self._def.value = 'meow' + field = self._def.field + self.assertEqual(field, 'meow') + self._def.has_field = False + field = self._def.field + self.assertIsNone(field) + + def test_eq(self): + field = _create_field(self._tc, self._create_fc(self._tc)) + field = field['opt_field'] + field.value = 'walk' + self._def.value = 'walk' + self.assertEqual(self._def, field) + + def test_eq_invalid_type(self): + self._def.value = 'gerry' + self.assertNotEqual(self._def, 23) + + def test_str_op(self): + self._def.value = 'marcel' + self.assertEqual(str(self._def), str(self._def.field)) + + def test_repr_op(self): + self._def.value = 'mireille' + self.assertEqual(repr(self._def), repr(self._def.field)) + + class VariantFieldTestCase(unittest.TestCase): def _create_fc(self, tc): ft0 = tc.create_signed_integer_field_class(32)