Esempio n. 1
0
 def test_get_closest_locations_returns_closest_single_location_2(self):
     stops = [MapLocation(3, 3, 3), MapLocation(4, 4, 4)]
     address = MapLocation(5, 5, 5)
     closest = self.generator._get_closest_locations(source=address,
                                                     destinations=stops,
                                                     n=1)
     self.assertEqual(MapLocation(4, 4, 4), closest[0],
                      "{}, should be 4, 4".format(closest[0]))
Esempio n. 2
0
 def test_get_closest_locations_returns_location_when_equal(self):
     stops = [MapLocation(1, 1, 1), MapLocation(3, 3, 3)]
     address = MapLocation(2, 2, 2)
     closest = self.generator._get_closest_locations(source=address,
                                                     destinations=stops,
                                                     n=1)
     self.assertEqual(MapLocation(1, 1, 1), closest[0],
                      "{}, should be 1, 1".format(closest[0]))
Esempio n. 3
0
    def test_process_stop_calls_add_route(self):
        self.generator.wrapper.get_distance_from_api = \
            Mock(return_value={"distance": 6, "time": 9})

        self.generator.handler.add_route = Mock()

        self.generator.process_stop(address=MapLocation(3, 3, 3),
                                    stop=MapLocation(4, 4, 4),
                                    verbose=False)

        self.generator.handler.add_route.assert_called_once_with(3, 4, 6, 9)
Esempio n. 4
0
    def test_process_stop_calls_get_distance_from_api(self):
        mock_get_distance = Mock(return_value={"distance": 6, "time": 9})
        self.generator.wrapper.get_distance_from_api = mock_get_distance

        self.generator.handler.add_route = Mock()

        address = MapLocation(1, 1, 1)
        stop = MapLocation(2, 2, 2)
        self.generator.process_stop(address=address, stop=stop, verbose=False)

        mock_get_distance.assert_called_once_with(address, stop, 'walking')
Esempio n. 5
0
    def test_begin_calls_get_closest_locations(self):
        addresses = MapLocation(1, 1, 1)
        self.generator.handler.get_address_generator = \
            MagicMock(return_value=[addresses])

        self.generator.stops = [MapLocation(2, 2, 2), MapLocation(3, 3, 3)]

        mock_get_closest_locations = Mock(
            return_value=[self.generator.stops[0]])
        self.generator._get_closest_locations = mock_get_closest_locations

        self.generator.wrapper.get_distance_from_api = \
            Mock(return_value={"distance": 6, "time": 9})
        self.generator.handler.add_route = Mock()

        self.generator.begin(stops_per_address=1, verbose=False)
        mock_get_closest_locations.assert_called_once_with(
            addresses, self.generator.stops, n=1)
Esempio n. 6
0
    def test_begin_doesnt_call_add_route_if_MapboxAPIError_occurs(self):
        addresses = MapLocation(1, 1, 1)
        self.generator.handler.get_address_generator = \
            MagicMock(return_value=[addresses])

        self.generator.wrapper.get_distance_from_api = Mock()

        self.generator.stops = [MapLocation(2, 2, 2)]

        self.generator._get_closest_locations = \
            Mock(return_value=[self.generator.stops[0]])

        # force get_distance_from_api to raise a MapboxAPIError exception
        self.generator.wrapper.get_distance_from_api.\
            side_effect = MapboxAPIError("API Error")

        mock_add_route = Mock()
        self.generator.handler.add_route = mock_add_route

        self.generator.begin(stops_per_address=1, verbose=False)

        mock_add_route.assert_not_called()
Esempio n. 7
0
    def test_begin_calls_process_stop_for_each_stop(self):
        address = MapLocation(1, 1, 1)
        self.generator.handler.get_address_generator = \
            MagicMock(return_value=[address])

        stops = [MapLocation(2, 2, 2), MapLocation(3, 3, 3)]

        mock_get_closest_locations = Mock(return_value=stops)
        self.generator._get_closest_locations = mock_get_closest_locations

        mock_process_stop = Mock()
        self.generator.process_stop = mock_process_stop

        self.generator.begin(stops_per_address=2, verbose=False)

        self.assertEqual(2, mock_process_stop.call_count)

        expected_calls = [
            mock.call(address, stops[0], False, 'walking'),
            mock.call(address, stops[1], False, 'walking')
        ]
        self.assertEqual(expected_calls, mock_process_stop.call_args_list)
Esempio n. 8
0
 def test_get_closest_locations_returns_closest_2_locations(self):
     stops = [
         MapLocation(1, 1, 1),
         MapLocation(5, 5, 5),
         MapLocation(6, 6, 6)
     ]
     address = MapLocation(4, 4, 4)
     closest = self.generator._get_closest_locations(source=address,
                                                     destinations=stops,
                                                     n=2)
     self.assertEqual(MapLocation(5, 5, 5), closest[0],
                      "{}, should be 5, 5".format(closest[0]))
     self.assertEqual(MapLocation(6, 6, 6), closest[1],
                      "{}, should be 6, 6".format(closest[1]))