diff --git a/system/gd/cert/event_stream.py b/system/gd/cert/event_stream.py index 1115c8bed93a5cb7f8a441ba126974b38008765d..3a71935e968d0c13c3a80d690106df549a0cd337 100644 --- a/system/gd/cert/event_stream.py +++ b/system/gd/cert/event_stream.py @@ -197,7 +197,8 @@ class EventStream(IEventStream, Closable): except Empty: continue logging.debug("Done waiting, got %d events" % len(event_list)) - asserts.assert_true( + assert_true( + self, len(event_list) <= at_most_times, msg=("Expected at most %d events, but got %d" % (at_most_times, len(event_list)))) @@ -209,6 +210,12 @@ def static_remaining_time_delta(end_time): return remaining +def assert_true(istream, expr, msg, extras=None): + if not expr: + istream.close() + asserts.fail(msg, extras) + + def NOT_FOR_YOU_assert_event_occurs(istream, match_fn, at_least_times=1, @@ -227,7 +234,9 @@ def NOT_FOR_YOU_assert_event_occurs(istream, except Empty: continue logging.debug("Done waiting for event, received %d", len(event_list)) - asserts.assert_true( + + assert_true( + istream, len(event_list) >= at_least_times, msg=("Expected at least %d events, but got %d" % (at_least_times, len(event_list)))) @@ -252,7 +261,8 @@ def NOT_FOR_YOU_assert_all_events_occur(istream, except Empty: continue logging.debug("Done waiting for event") - asserts.assert_true( + assert_true( + istream, len(matched_order) == len(match_fns), msg=("Expected at least %d events, but got %d" % (len(match_fns), len(matched_order)))) if order_matters: @@ -263,7 +273,7 @@ def NOT_FOR_YOU_assert_all_events_occur(istream, correct_order = False break i += 1 - asserts.assert_true(correct_order, "Events not received in correct order %s %s" % (match_fns, matched_order)) + assert_true(istream, correct_order, "Events not received in correct order %s %s" % (match_fns, matched_order)) def NOT_FOR_YOU_assert_none_matching(istream, match_fn, timeout): @@ -282,13 +292,13 @@ def NOT_FOR_YOU_assert_none_matching(istream, match_fn, timeout): logging.debug("Done waiting for an event") if event is None: return # Avoid an assert in MessageToString(None, ...) - asserts.assert_true(event is None, msg='Expected None matching, but got {}'.format(pretty_print(event))) + assert_true(istream, event is None, msg='Expected None matching, but got {}'.format(pretty_print(event))) def NOT_FOR_YOU_assert_none(istream, timeout): logging.debug("assert_none %fs" % (timeout.total_seconds())) try: event = istream.get_event_queue().get(timeout=timeout.total_seconds()) - asserts.assert_true(event is None, msg='Expected None, but got {}'.format(pretty_print(event))) + assert_true(istream, event is None, msg='Expected None, but got {}'.format(pretty_print(event))) except Empty: return