ms: Only use completed tests for min/max handling
Remove non completed results before calculating the min/max. We will
need to check success/failure based on completion ratio.
Change-Id: Icaf9e90dd729b2339e409b3ec1593f456969fd19
diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py
index 48c57eb..848d8da 100644
--- a/src/osmo_ms_driver/location_update_test.py
+++ b/src/osmo_ms_driver/location_update_test.py
@@ -188,10 +188,18 @@
def all_completed(self):
return self._outstanding == 0
+ def results_min_max(self, results):
+ min_value = max_value = None
+ for result in results:
+ if min_value is None or result.lu_delay() < min_value:
+ min_value = result.lu_delay()
+ if max_value is None or result.lu_delay() > max_value:
+ max_value = result.lu_delay()
+ return min_value, max_value
+
def print_stats(self):
all_completed = self.all_completed()
- min_value = min(self._results.values(), key=lambda x: x.lu_delay())
- max_value = max(self._results.values(), key=lambda x: x.lu_delay())
+ min_value, max_value = self.results_min_max(filter(lambda x: x.has_lu_time(), self._results.values()))
self.log("Tests done", all_completed=all_completed,
- min=min_value.lu_delay(), max=max_value.lu_delay())
+ min=min_value, max=max_value)