@@ -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