diff --git a/selfdrive/car/tests/test_models.py b/selfdrive/car/tests/test_models.py index 537214d14c..85472c756d 100755 --- a/selfdrive/car/tests/test_models.py +++ b/selfdrive/car/tests/test_models.py @@ -23,9 +23,8 @@ from openpilot.selfdrive.car.tests.routes import non_tested_cars, routes, CarTes from openpilot.selfdrive.controls.controlsd import Controls from openpilot.selfdrive.test.helpers import read_segment_list from openpilot.system.hardware.hw import DEFAULT_DOWNLOAD_CACHE_ROOT -from openpilot.tools.lib.comma_car_segments import get_url -from openpilot.tools.lib.logreader import LogReader -from openpilot.tools.lib.route import Route, SegmentName, RouteName +from openpilot.tools.lib.logreader import LogReader, internal_source, openpilotci_source +from openpilot.tools.lib.route import SegmentName from panda.tests.libpanda import libpanda_py @@ -75,14 +74,6 @@ class TestCarModelBase(unittest.TestCase): elm_frame: Optional[int] car_safety_mode_frame: Optional[int] - @classmethod - def get_logreader(cls, seg): - if len(INTERNAL_SEG_LIST): - route_name = RouteName(cls.test_route.route) - return LogReader(f"cd:/{route_name.dongle_id}/{route_name.time_str}/{seg}/rlog.bz2") - else: - return LogReader(get_url(cls.test_route.route, seg)) - @classmethod def get_testing_data_from_logreader(cls, lr): car_fw = [] @@ -133,22 +124,26 @@ class TestCarModelBase(unittest.TestCase): if cls.test_route.segment is not None: test_segs = (cls.test_route.segment,) - # Try the primary method first (CI or internal) + is_internal = len(INTERNAL_SEG_LIST) + for seg in test_segs: + segment_range = f"{cls.test_route.route}/{seg}" + try: - lr = cls.get_logreader(seg) + lr = LogReader(segment_range, default_source=internal_source if is_internal else openpilotci_source) return cls.get_testing_data_from_logreader(lr) except Exception: pass # Route is not in CI bucket, assume either user has access (private), or it is public # test_route_on_ci_bucket will fail when running in CI - if not len(INTERNAL_SEG_LIST): + if not is_internal: cls.test_route_on_bucket = False for seg in test_segs: + segment_range = f"{cls.test_route.route}/{seg}" try: - lr = LogReader(Route(cls.test_route.route).log_paths()[seg]) + lr = LogReader(segment_range) return cls.get_testing_data_from_logreader(lr) except Exception: pass