def find_closest(request): get_data = request.GET errors = [] user_lat = get_data.get('latitude', '') user_lon = get_data.get('longitude', '') num_trucks = get_data.get('num_trucks', 10) nearest_trucks = FoodTruck.get_closest(user_lat, user_lon, num_trucks) response = {'status': 200, 'nearest_trucks': nearest_trucks} return HttpResponse(json.dumps(response), content_type='application/json')
def test_get_closest(self): truck1 = FoodTruck.objects.get(truck_name="truck1") truck2 = FoodTruck.objects.get(truck_name="truck2") truck3 = FoodTruck.objects.get(truck_name="truck3") truck4 = FoodTruck.objects.get(truck_name="truck4") truck5 = FoodTruck.objects.get(truck_name="truck5") # results closest to origin should be truck 1 and truck 3, it should ignore truck 2 because it # does not have sane long/lat values result = FoodTruck.get_closest(0, 0, 2) self.assertIn(truck1.get_info(), result) self.assertIn(truck3.get_info(), result) self.assertNotIn(truck2.get_info(), result) self.assertNotIn(truck4.get_info(), result) self.assertNotIn(truck5.get_info(), result) # results closest on the opposite end of origin should be truck 4 and truck 5, result = FoodTruck.get_closest(100, 100, 2) self.assertIn(truck4.get_info(), result) self.assertIn(truck5.get_info(), result)
def find_closest(request): get_data = request.GET errors = [] user_lat = get_data.get('latitude', '') user_lon = get_data.get('longitude', '') num_trucks = get_data.get('num_trucks', 10) nearest_trucks = FoodTruck.get_closest(user_lat, user_lon, num_trucks) response = { 'status': 200, 'nearest_trucks': nearest_trucks } return HttpResponse(json.dumps(response), content_type='application/json')