def test_recommended_going_query(self):
     # Creates the available journeys with driver...
     user1 = UserFactory()
     residence1 = ResidenceFactory(user=user1, position=Point(883877.34, 547084.05, srid=DEFAULT_PROJECTED_SRID))
     user2 = UserFactory()
     residence2 = ResidenceFactory(user=user2, position=Point(882823.07, 545542.48, srid=DEFAULT_PROJECTED_SRID))
     campus = CampusFactory()
     user3 = UserFactory()
     residence3 = ResidenceFactory(user=user3, position=Point(865621.24, 545274.90, srid=DEFAULT_PROJECTED_SRID))
     template = JourneyTemplateFactory(user=user1, driver=user1, residence=residence1, campus=campus)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user2, driver=user2, residence=residence2, campus=campus)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user3, driver=user3, residence=residence3, campus=campus)
     JourneyFactory(template=template)
     user4 = UserFactory()
     residence4 = ResidenceFactory(
         user=user4, position=Point(882532.74, 545437.43, srid=DEFAULT_PROJECTED_SRID), distance=2500
     )
     template = JourneyTemplateFactory(user=user4, residence=residence4, campus=campus)
     JourneyFactory(template=template)
     self.assertEquals(Journey.objects.recommended(
         user=user4,
         kind=GOING
     ).count(), 2)
Beispiel #2
0
 def test_available_going_query(self):
     # Creates the available journeys with driver...
     user1 = UserFactory()
     residence1 = ResidenceFactory(user=user1,
                                   position=Point(
                                       883877.34,
                                       547084.05,
                                       srid=DEFAULT_PROJECTED_SRID))
     user2 = UserFactory()
     residence2 = ResidenceFactory(user=user2,
                                   position=Point(
                                       882823.07,
                                       545542.48,
                                       srid=DEFAULT_PROJECTED_SRID))
     campus = CampusFactory()
     JourneyFactory(user=user1,
                    driver=user1,
                    residence=residence1,
                    campus=campus)
     JourneyFactory(user=user2,
                    driver=user2,
                    residence=residence2,
                    campus=campus)
     # Creates a journey without driver
     user3 = UserFactory()
     residence3 = ResidenceFactory(user=user3,
                                   position=Point(
                                       882454.58,
                                       545877.33,
                                       srid=DEFAULT_PROJECTED_SRID))
     JourneyFactory(user=user3, residence=residence3, campus=campus)
     self.assertEquals(
         Journey.objects.available(user=user3, kind=GOING).count(), 2)
Beispiel #3
0
 def test_recommended_journeys(self):
     # Creates the available journeys with driver...
     user1 = UserFactory()
     residence1 = ResidenceFactory(user=user1,
                                   position=Point(
                                       883877.34,
                                       547084.05,
                                       srid=DEFAULT_PROJECTED_SRID))
     user2 = UserFactory()
     residence2 = ResidenceFactory(user=user2,
                                   position=Point(
                                       882823.07,
                                       545542.48,
                                       srid=DEFAULT_PROJECTED_SRID))
     campus = CampusFactory()
     user3 = UserFactory()
     residence3 = ResidenceFactory(user=user3,
                                   position=Point(
                                       865621.24,
                                       545274.90,
                                       srid=DEFAULT_PROJECTED_SRID))
     template = JourneyTemplateFactory(user=user1,
                                       driver=user1,
                                       residence=residence1,
                                       campus=campus)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user2,
                                       driver=user2,
                                       residence=residence2,
                                       campus=campus)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user3,
                                       driver=user3,
                                       residence=residence3,
                                       campus=campus)
     JourneyFactory(template=template)
     user4 = UserFactory()
     residence4 = ResidenceFactory(user=user4,
                                   position=Point(
                                       882532.74,
                                       545437.43,
                                       srid=DEFAULT_PROJECTED_SRID),
                                   distance=2500)
     template = JourneyTemplateFactory(user=user4,
                                       residence=residence4,
                                       campus=campus)
     journey = JourneyFactory(template=template)
     # Make query...
     url = "/api/v1/journeys/{}/recommended/".format(journey.pk)
     self.client.force_authenticate(user=user4)
     response = self.client.get(url)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     response_data = json.loads(response.content.decode('utf-8'))
     self.assertEquals(2, len(response_data['results']))
Beispiel #4
0
 def test_get_messages(self):
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     journey1 = JourneyFactory(user=user,
                               residence=origin,
                               campus=destination)
     journey2 = JourneyFactory(user=user,
                               residence=origin,
                               campus=destination)
     journey3 = JourneyFactory(user=UserFactory(),
                               residence=origin,
                               campus=destination)
     [MessageFactory(user=user, journey=journey1) for _ in range(2)]
     [
         MessageFactory(user=UserFactory(), journey=journey1)
         for _ in range(2)
     ]
     [MessageFactory(user=user, journey=journey2) for _ in range(2)]
     [
         MessageFactory(user=UserFactory(), journey=journey2)
         for _ in range(2)
     ]
     [
         MessageFactory(user=UserFactory(), journey=journey3)
         for _ in range(2)
     ]
     url = "/api/v1/messages/"
     self.client.force_authenticate(user=user)
     response = self.client.get(url)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     response_data = json.loads(response.content.decode('utf-8'))
     self.assertEquals(8, len(response_data['results']))
 def test_destination(self):
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     template = JourneyTemplateFactory(user=user, residence=origin, campus=destination, kind=GOING)
     journey = JourneyFactory(template=template)
     self.assertEquals(journey.destination, destination)
Beispiel #6
0
 def _make_journey(user=None, kind=GOING):
     user = UserFactory() if user is None else user
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     return JourneyFactory(user=user,
                           residence=origin,
                           campus=destination,
                           kind=kind)
 def test_available_query(self):
     # Creates the available journeys with driver...
     user1 = UserFactory()
     residence1 = ResidenceFactory(user=user1, position=Point(883877.34, 547084.05, srid=DEFAULT_PROJECTED_SRID))
     user2 = UserFactory()
     residence2 = ResidenceFactory(user=user2, position=Point(882823.07, 545542.48, srid=DEFAULT_PROJECTED_SRID))
     campus = CampusFactory()
     template = JourneyTemplateFactory(user=user1, driver=user1, residence=residence1, campus=campus, kind=RETURN)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user2, driver=user2, residence=residence2, campus=campus)
     JourneyFactory(template=template)
     # Creates a journey without driver
     user3 = UserFactory()
     residence3 = ResidenceFactory(user=user3, position=Point(865621.24, 545274.90, srid=DEFAULT_PROJECTED_SRID))
     template = JourneyTemplateFactory(user=user3, residence=residence3, campus=campus, kind=RETURN)
     JourneyFactory(template=template)
     self.assertEquals(Journey.objects.available(user=user3).count(), 2)
Beispiel #8
0
 def test_get_residences(self):
     user = UserFactory()
     residences = [ResidenceFactory(user=user) for _ in range(5)]
     url = "/api/v1/residences/"
     self.client.force_authenticate(user=user)
     response = self.client.get(url)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     response_data = json.loads(response.content.decode('utf-8'))
     self.assertEquals(len(residences), len(response_data['results']))
Beispiel #9
0
 def test_origin(self):
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     journey = JourneyFactory(user=user,
                              residence=origin,
                              campus=destination,
                              kind=GOING)
     self.assertEquals(journey.origin, origin)
Beispiel #10
0
 def _make_journey(kind=GOING):
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     template = JourneyTemplateFactory(user=user,
                                       residence=origin,
                                       campus=destination,
                                       kind=kind)
     return JourneyFactory(template=template,
                           departure=template.departure,
                           arrival=template.arrival)
 def test_nearby_query(self):
     # Creates the available journeys with driver...
     user1 = UserFactory()
     residence1 = ResidenceFactory(user=user1, position=Point(883877.34, 547084.05, srid=DEFAULT_PROJECTED_SRID))
     user2 = UserFactory()
     residence2 = ResidenceFactory(user=user2, position=Point(882823.07, 545542.48, srid=DEFAULT_PROJECTED_SRID))
     campus = CampusFactory()
     user3 = UserFactory()
     residence3 = ResidenceFactory(user=user3, position=Point(865621.24, 545274.90, srid=DEFAULT_PROJECTED_SRID))
     template = JourneyTemplateFactory(user=user1, driver=user1, residence=residence1, campus=campus)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user2, driver=user2, residence=residence2, campus=campus)
     JourneyFactory(template=template)
     template = JourneyTemplateFactory(user=user3, driver=user3, residence=residence3, campus=campus)
     JourneyFactory(template=template)
     point = Point(882532.74, 545437.43, srid=DEFAULT_PROJECTED_SRID)
     self.assertEquals(Journey.objects.nearby(
         geometry=point,
         distance=D(m=2500)
     ).count(), 2)
 def test_smart_create_no_transport(self):
     """Test smart create of a journey without transport."""
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     template = JourneyTemplate.objects.smart_create(
         user=user, origin=origin, destination=destination, departure=timezone.now() + datetime.timedelta(days=1)
     )
     journeys = expand(template)
     journey = journeys[0]
     self.assertEquals(Journey.objects.count(), 1)
     self.assertEquals(Journey.objects.first(), journey)
Beispiel #13
0
 def test_not_allowed_messages(self):
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     journey = JourneyFactory(user=user,
                              residence=origin,
                              campus=destination)
     [MessageFactory(user=user, journey=journey) for _ in range(5)]
     [MessageFactory(user=UserFactory(), journey=journey) for _ in range(5)]
     url = "/api/v1/journeys/{}/messages/".format(journey.pk)
     self.client.force_authenticate(user=UserFactory())
     response = self.client.get(url)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     response_data = json.loads(response.content.decode('utf-8'))
     self.assertEquals(0, len(response_data['results']))
Beispiel #14
0
 def test_create_message_owner_user(self):
     user = UserFactory()
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     journey = JourneyFactory(user=user,
                              residence=origin,
                              campus=destination)
     self.assertEquals(0, journey.messages.count())
     data = {
         "content": "Hello!",
         "journey": journey.pk,
     }
     self.client.force_authenticate(user=user)
     url = "/api/v1/messages/"
     response = self.client.post(url, data=data)
     self.assertEqual(response.status_code, status.HTTP_201_CREATED)
     self.assertEquals(1, journey.messages.count())
 def test_smart_create(self):
     """Test smart create of a journey with transport."""
     user = UserFactory()
     transport = TransportFactory(user=user)
     origin = ResidenceFactory(user=user)
     destination = CampusFactory()
     template = JourneyTemplate.objects.smart_create(
         user=user, origin=origin, destination=destination, departure=timezone.now() + datetime.timedelta(days=1),
         transport=transport
     )
     journeys = expand(template)
     journey = journeys[0]
     self.assertEquals(Journey.objects.count(), 1)
     self.assertEquals(Journey.objects.first(), journey)
     self.assertEquals(journey.free_places, transport.default_places)
     self.assertEquals(journey.current_free_places(), transport.default_places)
     self.assertIsNotNone(journey.driver)
     self.assertEquals(user, journey.driver)