You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.6 KiB
32 lines
1.6 KiB
#!/usr/bin/env python
|
|
import unittest
|
|
from collections import namedtuple
|
|
|
|
from openpilot.tools.lib.route import SegmentName
|
|
|
|
class TestRouteLibrary(unittest.TestCase):
|
|
def test_segment_name_formats(self):
|
|
Case = namedtuple('Case', ['input', 'expected_route', 'expected_segment_num', 'expected_data_dir'])
|
|
|
|
cases = [ Case("a2a0ccea32023010|2023-07-27--13-01-19", "a2a0ccea32023010|2023-07-27--13-01-19", -1, None),
|
|
Case("a2a0ccea32023010/2023-07-27--13-01-19--1", "a2a0ccea32023010|2023-07-27--13-01-19", 1, None),
|
|
Case("a2a0ccea32023010|2023-07-27--13-01-19/2", "a2a0ccea32023010|2023-07-27--13-01-19", 2, None),
|
|
Case("a2a0ccea32023010/2023-07-27--13-01-19/3", "a2a0ccea32023010|2023-07-27--13-01-19", 3, None),
|
|
Case("/data/media/0/realdata/a2a0ccea32023010|2023-07-27--13-01-19", "a2a0ccea32023010|2023-07-27--13-01-19", -1, "/data/media/0/realdata"),
|
|
Case("/data/media/0/realdata/a2a0ccea32023010|2023-07-27--13-01-19--1", "a2a0ccea32023010|2023-07-27--13-01-19", 1, "/data/media/0/realdata"),
|
|
Case("/data/media/0/realdata/a2a0ccea32023010|2023-07-27--13-01-19/2", "a2a0ccea32023010|2023-07-27--13-01-19", 2, "/data/media/0/realdata") ]
|
|
|
|
def _validate(case):
|
|
route_or_segment_name = case.input
|
|
|
|
s = SegmentName(route_or_segment_name, allow_route_name=True)
|
|
|
|
self.assertEqual(str(s.route_name), case.expected_route)
|
|
self.assertEqual(s.segment_num, case.expected_segment_num)
|
|
self.assertEqual(s.data_dir, case.expected_data_dir)
|
|
|
|
for case in cases:
|
|
_validate(case)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|
|
|