Skip to content

Commit ca2c7bf

Browse files
OpenHTF Ownerscopybara-github
authored andcommitted
Support specifying a tolerance when using assertMeasured with floats.
PiperOrigin-RevId: 766756498
1 parent b3a56ee commit ca2c7bf

File tree

1 file changed

+36
-7
lines changed

1 file changed

+36
-7
lines changed

openhtf/util/test.py

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -925,16 +925,45 @@ def _check_phase(phase_record, strict=False):
925925
_check_phase(phase_record)
926926

927927
@_assert_phase_or_test_record
928-
def assertMeasured(self, phase_record, measurement, value=mock.ANY):
928+
def assertMeasured(
929+
self, phase_record, measurement, value=mock.ANY, delta=None
930+
):
929931
self.assertTrue(
930932
phase_record.measurements[measurement].measured_value.is_value_set,
931-
'Measurement %s not set' % measurement)
933+
'Measurement %s not set' % measurement,
934+
)
932935
if value is not mock.ANY:
933-
self.assertEqual(
934-
value, phase_record.measurements[measurement].measured_value.value,
935-
'Measurement %s has wrong value: expected %s, got %s' %
936-
(measurement, value,
937-
phase_record.measurements[measurement].measured_value.value))
936+
if isinstance(value, float):
937+
self.assertAlmostEqual(
938+
value,
939+
phase_record.measurements[measurement].measured_value.value,
940+
delta=delta,
941+
msg=(
942+
'Measurement %s has wrong value: expected %s, got %s,'
943+
' tolerance %s'
944+
)
945+
% (
946+
measurement,
947+
value,
948+
phase_record.measurements[measurement].measured_value.value,
949+
delta,
950+
),
951+
)
952+
else:
953+
if delta is not None:
954+
raise ValueError(
955+
'Delta is not supported when expected value is not a float.'
956+
)
957+
self.assertEqual(
958+
value,
959+
phase_record.measurements[measurement].measured_value.value,
960+
'Measurement %s has wrong value: expected %s, got %s'
961+
% (
962+
measurement,
963+
value,
964+
phase_record.measurements[measurement].measured_value.value,
965+
),
966+
)
938967

939968
@_assert_phase_or_test_record
940969
def assertMeasurementPass(self, phase_record, measurement, value=mock.ANY):

0 commit comments

Comments
 (0)