From 12810aa0e78298b1f3da8a55dd208c63f7989aeb Mon Sep 17 00:00:00 2001 From: SimonSanich Date: Mon, 30 Mar 2026 18:47:40 +0300 Subject: [PATCH] Added unit tests for map module --- MapView/tests/test_mp.py | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 MapView/tests/test_mp.py diff --git a/MapView/tests/test_mp.py b/MapView/tests/test_mp.py new file mode 100644 index 0000000..27fe7d7 --- /dev/null +++ b/MapView/tests/test_mp.py @@ -0,0 +1,93 @@ +import unittest +import sys +from unittest.mock import Mock + +# 🔥 МОКАЄМО ВСЕ ДО ІМПОРТІВ +sys.modules['lineMapLayer'] = Mock() +sys.modules['datasource'] = Mock() +sys.modules['config'] = Mock() + +from MapView.main import get_lat_lon, MapViewApp +from MapView.datasource import Datasource as DataSourceClass + + +# ----------------------- +# get_lat_lon +# ----------------------- +class TestGetLatLon(unittest.TestCase): + + def test_dict(self): + point = {"lat": 50.45, "lon": 30.52} + self.assertEqual(get_lat_lon(point), (50.45, 30.52)) + + def test_tuple(self): + point = (50.45, 30.52) + self.assertEqual(get_lat_lon(point), (50.45, 30.52)) + + def test_list(self): + point = [50.45, 30.52] + self.assertEqual(get_lat_lon(point), (50.45, 30.52)) + + def test_invalid(self): + point = {"lat": None, "lon": 30.52} + self.assertIsNone(get_lat_lon(point)) + + +# ----------------------- +# map_lat_lon_to_marker +# ----------------------- +class TestMapLatLonToMarker(unittest.TestCase): + + def setUp(self): + self.instance = MapViewApp() + + def test_marker_found(self): + marker = Mock() + marker.lat = 30.52 + marker.lon = 50.45 + + self.instance.pothole_markers = [marker] + self.instance.bump_markers = [] + + result = self.instance.map_lat_lon_to_marker(50.45, 30.52) + + self.assertEqual(result, marker) + + def test_marker_not_found(self): + self.instance.pothole_markers = [] + self.instance.bump_markers = [] + + result = self.instance.map_lat_lon_to_marker(50.45, 30.52) + + self.assertIsNone(result) + + +# ----------------------- +# map_lat_lon_to_processed_agent_data +# ----------------------- +class TestMapLatLonToProcessedAgentData(unittest.TestCase): + + def setUp(self): + self.instance = DataSourceClass() + + def test_returns_marker(self): + marker = Mock() + marker.latitude = 30.52 + marker.longitude = 50.45 + + self.instance._active_markers = [marker] + + result = self.instance.map_lat_lon_to_processed_agent_data(50.45, 30.52) + + self.assertIsNotNone(result) + + def test_empty_markers(self): + self.instance._active_markers = [] + + result = self.instance.map_lat_lon_to_processed_agent_data(50.45, 30.52) + + self.assertIsNone(result) + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file