예제 #1
0
    def test_processing_taxi_is_too_far(self):
        taxi_id1 = 1
        taxi_id2 = 2
        passenger_id = 1
        client = APIClient()

        response = client.post('/taxi/%d/location/' % taxi_id1, {
            'lat': 34.312719,
            'lon': 68.845431
        },
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        response = client.post('/taxi/%d/location/' % taxi_id2, {
            'lat': 33.312719,
            'lon': 69.845431
        },
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        self.assertEqual(TaxiLocation.objects.count(), 2)

        response = client.post('/passenger/%s/order/' % passenger_id, {
            'lat': 56.315855,
            "lon": 44.003525
        },
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(PassengerOrder.objects.count(), 1)

        process_passengers()

        order = PassengerOrder.objects.get(passenger_id=passenger_id)
        self.assertEqual(order.taxi_id, None)
예제 #2
0
    def test_processing(self):
        taxi_id1 = 1
        taxi_id2 = 2
        passenger_id = 1
        client = APIClient()

        response = client.post('/taxi/%d/location/' % taxi_id1, {'lat': 56.312719, 'lon': 43.845431}, format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        response = client.post('/taxi/%d/location/' % taxi_id2, {'lat': 55.312719, 'lon': 41.845431}, format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        self.assertEqual(TaxiLocation.objects.count(), 2)

        response = client.post('/passenger/%s/order/' % passenger_id, {'lat': 56.315855, "lon": 44.003525},
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(PassengerOrder.objects.count(), 1)

        process_passengers()

        order = PassengerOrder.objects.get(passenger_id=passenger_id)
        self.assertEqual(int(order.taxi_id), taxi_id1)
        taxi = TaxiLocation.objects.get(taxi_id=taxi_id1)
        self.assertTrue(taxi.is_busy)

        # test delete
        response = client.delete('/passenger/%s/order/' % passenger_id, format='json')
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(PassengerOrder.objects.count(), 0)
        taxi = TaxiLocation.objects.get(taxi_id=taxi_id1)
        self.assertFalse(taxi.is_busy)
    def handle(self, *args, **options):
        times_to_repeat = self.default_times_to_repeat
        if options['times_to_repeat']:
            times_to_repeat = int(options['times_to_repeat'])

        timeout_before_repeat = self.default_timeout
        if options['timeout_before_repeat']:
            timeout_before_repeat = int(options['timeout_before_repeat'])

        for i in xrange(times_to_repeat):
            print 'Attempt num ', str(i + 1), ':'
            print ''
            process_passengers()
            print ''

            if (i + 1) != times_to_repeat:
                time.sleep(timeout_before_repeat)
    def handle(self, *args, **options):
        times_to_repeat = self.default_times_to_repeat
        if options["times_to_repeat"]:
            times_to_repeat = int(options["times_to_repeat"])

        timeout_before_repeat = self.default_timeout
        if options["timeout_before_repeat"]:
            timeout_before_repeat = int(options["timeout_before_repeat"])

        for i in xrange(times_to_repeat):
            print "Attempt num ", str(i + 1), ":"
            print ""
            process_passengers()
            print ""

            if (i + 1) != times_to_repeat:
                time.sleep(timeout_before_repeat)
예제 #5
0
    def test_processing(self):
        taxi_id1 = 1
        taxi_id2 = 2
        passenger_id = 1
        client = APIClient()

        response = client.post('/taxi/%d/location/' % taxi_id1, {
            'lat': 56.312719,
            'lon': 43.845431
        },
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        response = client.post('/taxi/%d/location/' % taxi_id2, {
            'lat': 55.312719,
            'lon': 41.845431
        },
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        self.assertEqual(TaxiLocation.objects.count(), 2)

        response = client.post('/passenger/%s/order/' % passenger_id, {
            'lat': 56.315855,
            "lon": 44.003525
        },
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(PassengerOrder.objects.count(), 1)

        process_passengers()

        order = PassengerOrder.objects.get(passenger_id=passenger_id)
        self.assertEqual(int(order.taxi_id), taxi_id1)
        taxi = TaxiLocation.objects.get(taxi_id=taxi_id1)
        self.assertTrue(taxi.is_busy)

        # test delete
        response = client.delete('/passenger/%s/order/' % passenger_id,
                                 format='json')
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(PassengerOrder.objects.count(), 0)
        taxi = TaxiLocation.objects.get(taxi_id=taxi_id1)
        self.assertFalse(taxi.is_busy)
예제 #6
0
    def test_processing_taxi_is_too_far(self):
        taxi_id1 = 1
        taxi_id2 = 2
        passenger_id = 1
        client = APIClient()

        response = client.post('/taxi/%d/location/' % taxi_id1, {'lat': 34.312719, 'lon': 68.845431}, format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        response = client.post('/taxi/%d/location/' % taxi_id2, {'lat': 33.312719, 'lon': 69.845431}, format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        self.assertEqual(TaxiLocation.objects.count(), 2)

        response = client.post('/passenger/%s/order/' % passenger_id, {'lat': 56.315855, "lon": 44.003525},
                               format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(PassengerOrder.objects.count(), 1)

        process_passengers()

        order = PassengerOrder.objects.get(passenger_id=passenger_id)
        self.assertEqual(order.taxi_id, None)