From: Simon Marchi Date: Tue, 15 Oct 2019 22:29:05 +0000 (-0400) Subject: tests: test eq and ne operators of fields and values against arbitrary objects and... X-Git-Tag: v2.0.0-rc1~4 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=9e6a025ff5ef041538f1eb837d73cdc79b6dd01c tests: test eq and ne operators of fields and values against arbitrary objects and None The binary operator tests that test comparing fields and values against arbitrary objects and None are skipped for the eq and ne operators. This patch modifies the tests to test those operators too. Unlike other operators, we don't expect them to raise an Exception. Change-Id: Ia5f3c64d8223addc436ac23909e36f81814befee Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/2206 Tested-by: jenkins Reviewed-by: Francis Deslauriers --- diff --git a/tests/bindings/python/bt2/test_field.py b/tests/bindings/python/bt2/test_field.py index 99532e10..8252d5eb 100644 --- a/tests/bindings/python/bt2/test_field.py +++ b/tests/bindings/python/bt2/test_field.py @@ -343,22 +343,31 @@ class _TestNumericField: # `vint` and `vfloat` mean a signed integer value object and a real # value object. - def _test_binop_invalid_unknown(self, op): - if op in _COMP_BINOPS: - self.skipTest('not testing') - + def _test_binop_unknown(self, op): class A: pass - with self.assertRaises(TypeError): - op(self._def, A()) - - def _test_binop_invalid_none(self, op): - if op in _COMP_BINOPS: - self.skipTest('not testing') - - with self.assertRaises(TypeError): - op(self._def, None) + # Operators == and != are defined when comparing the field to an + # arbitrary object. + if op is operator.eq: + self.assertIs(op(self._def, A()), False) + elif op is operator.ne: + self.assertIs(op(self._def, A()), True) + else: + # But not other operators. + with self.assertRaises(TypeError): + op(self._def, A()) + + def _test_binop_none(self, op): + # Operators == and != are defined when comparing the field to None. + if op is operator.eq: + self.assertIs(op(self._def, None), False) + elif op is operator.ne: + self.assertIs(op(self._def, None), True) + else: + # But not other operators. + with self.assertRaises(TypeError): + op(self._def, None) def _test_binop_rhs_false(self, test_cb, op): test_cb(op, False) @@ -725,13 +734,13 @@ def _inject_numeric_testing_methods(cls): for name, binop in _BINOPS: setattr( cls, - test_binop_name('invalid_unknown'), - partialmethod(_TestNumericField._test_binop_invalid_unknown, op=binop), + test_binop_name('unknown'), + partialmethod(_TestNumericField._test_binop_unknown, op=binop), ) setattr( cls, - test_binop_name('invalid_none'), - partialmethod(_TestNumericField._test_binop_invalid_none, op=binop), + test_binop_name('none'), + partialmethod(_TestNumericField._test_binop_none, op=binop), ) setattr( cls, diff --git a/tests/bindings/python/bt2/test_value.py b/tests/bindings/python/bt2/test_value.py index c7cfe014..82383762 100644 --- a/tests/bindings/python/bt2/test_value.py +++ b/tests/bindings/python/bt2/test_value.py @@ -212,19 +212,23 @@ class _TestNumericValue(_TestCopySimple): # `vint` and `vfloat` mean a signed integer value object and a real # value object. - def _test_binop_invalid_unknown(self, op): - if op in _COMP_BINOPS: - self.skipTest('not testing') - - with self.assertRaises(TypeError): - op(self._def, object()) - - def _test_binop_invalid_none(self, op): - if op in _COMP_BINOPS: - self.skipTest('not testing') - - with self.assertRaises(TypeError): - op(self._def, None) + def _test_binop_unknown(self, op): + if op is operator.eq: + self.assertIs(op(self._def, object()), False) + elif op is operator.ne: + self.assertIs(op(self._def, object()), True) + else: + with self.assertRaises(TypeError): + op(self._def, object()) + + def _test_binop_none(self, op): + if op is operator.eq: + self.assertIs(op(self._def, None), False) + elif op is operator.ne: + self.assertIs(op(self._def, None), True) + else: + with self.assertRaises(TypeError): + op(self._def, None) def _test_binop_rhs_false(self, test_cb, op): test_cb(op, False) @@ -577,13 +581,13 @@ def _inject_numeric_testing_methods(cls): for name, binop in _BINOPS: setattr( cls, - test_binop_name('invalid_unknown'), - partialmethod(_TestNumericValue._test_binop_invalid_unknown, op=binop), + test_binop_name('unknown'), + partialmethod(_TestNumericValue._test_binop_unknown, op=binop), ) setattr( cls, - test_binop_name('invalid_none'), - partialmethod(_TestNumericValue._test_binop_invalid_none, op=binop), + test_binop_name('none'), + partialmethod(_TestNumericValue._test_binop_none, op=binop), ) setattr( cls,