def test_search_trip_driver_closer_to_destination(self):
     '''
     Rider and driver are now at the same latitude, 46.502000. We move Driver to
     46.503000 North (+0.01000). Therefore, driver is after rider and closer to
     the destination.
     Before this method:
         Driver Position:    '46.502000  11.340000'
         Rider Position:     '46.502000  11.340000'
     After this method:
         Driver Position:    '46.503000  11.340000'
         Rider Position:     '46.502000  11.340000'
     '''
     self.driver.position_lat += 0.001000
     self.driver_position = utils.georss_point_from_coords(self.driver.position_lat,self.driver.position_lon)
     self.driver.location = classes.Location(georss_point=self.driver_position)
     response = self.driver.update_position(location=self.driver.location)
     assert response['code'] == response_codes.CREATED or response['code'] == response_codes.ALL_OK
     response = self.rider.search_ride(self.rider.location,self.rider.destination)
     assert response['code'] == response_codes.ALL_OK
     with py.test.raises(KeyError):
         assert response['trips'] == True
    def test_search_trip_driver_moving_away_from_rider(self):
        '''
        We now move the Driver to South, making it moving away from rider.
        Therefore, rider should not get his trip in a search.
        Before this method:
            Driver Position:    '46.503000  11.340000'
            Rider Position:     '46.502000  11.340000'
        After this method:
            Driver Position:    '46.501000  11.340000'
            Rider Position:     '46.502000  11.340000'
        '''
        for i in range (1,21):
            self.driver.position_lat -= 0.0001
            self.driver_position = utils.georss_point_from_coords(self.driver.position_lat,self.driver.position_lon)
            self.driver.location = classes.Location(georss_point=self.driver_position)
            response = self.driver.update_position(location=self.driver.location)
            assert response['code'] == response_codes.CREATED or response['code'] == response_codes.ALL_OK
        driver_position = utils.coords_from_georss_point(self.driver.get_position()['value']['georss_point'])

        response = self.rider.search_ride(self.rider.location,self.rider.destination)
        assert response['code'] == response_codes.ALL_OK
        with py.test.raises(KeyError):
            assert response['trips'] == True
    def test_search_trip_valid(self):
        '''
        We move Driver + 0.00010 North 20 times, until he reaches rider
        location. Rider is +0.002000 North initially.
        Before this method:
            Driver Position:    '46.500000  11.340000'
            Rider Position:     '46.502000  11.340000'
        After this method:
            Driver Position:    '46.502000  11.340000'
            Rider Position:     '46.502000  11.340000'
        '''
        for i in range (1,21):
            self.driver.position_lat += 0.000100
            self.driver_position = utils.georss_point_from_coords(self.driver.position_lat,self.driver.position_lon)
            self.driver.location = classes.Location(georss_point=self.driver_position)
            response = self.driver.update_position(location=self.driver.location)
            assert response['code'] == response_codes.CREATED or response['code'] == response_codes.ALL_OK
            response = self.rider.search_ride(self.rider.location,self.rider.destination)
            assert response['code'] == response_codes.ALL_OK
            self.rider.trip = response['value']['trips'][0]

        driver_position = utils.coords_from_georss_point(self.driver.get_position()['value']['georss_point'])
        rider_position = utils.coords_from_georss_point(self.rider.get_position()['value']['georss_point'])
        assert driver_position == rider_position
Example #4
0
 def setup_class(self):
     self.rider = classes.Rider(settings.REGISTRATION_USERNAME,settings.REGISTRATION_PASSWORD,settings.DYCAPO_URL)
     self.rider.position_lat = 46.494957
     self.rider.position_lon = 11.340239
     self.rider_position = utils.georss_point_from_coords(self.rider.position_lat, self.rider.position_lon)