Пример #1
0
    def setUp(self):
        main.app.testing = True
        self.app = main.app.test_client()
        self.userIds = ["testuid1", "testuid2"]

        self.from_location: UserLocation = LocationFactory.from_pickup_address("Tenaya Hall, San Diego, CA 92161")
        self.from_location.save()

        self.sublocation = Sublocation.get_with_latlng(
            latitude=self.from_location.latitude,
            longitude=self.from_location.longitude
        )
        self.sublocation.save()

        testing_utils._wait()

        UserLocation.add_sublocation_with_id(
            self.from_location.doc_id, [self.sublocation.doc_id],
        )

        self.to_location = LocationFactory.from_pickup_address("Tioga Hall, San Diego, CA 92161")
        self.to_location.save()

        testing_utils._wait()

        UserLocation.add_sublocation_with_id(
            self.to_location.doc_id, [self.sublocation.doc_id]
        )

        self.users = {
            user_id: User.new(doc_id=user_id, name="My Name", email=f"{user_id}@myemail.com")
            for user_id in self.userIds
        }
        _ = [user.save() for _, user in self.users.items()]

        self.ride_host = RideHost.new(
            doc_id="tmp_ride_host_1",
            earliest_departure=1419851578,
            from_location=self.from_location,
            to_location=self.to_location,
            user_id=self.userIds[0],
            status="created"
        )

        self.ride_host.save()

        self.rider_booking = RiderBooking.new(
            doc_id="tmp_rider_booking_1",
            earliest_departure=1419851578,
            from_location=self.from_location,
            to_location=self.to_location,
            user_id=self.userIds[1],
            status="created"
        )

        self.rider_booking.save()
Пример #2
0
 def test_create(self):
     main.user_sublocation_mediator.start()
     main.user_location_mediator.start()
     main.user_location_view_mediator.start()
     doc_ref: firestore.DocumentReference = \
         CTX.db.document(self.expected_path)
     form = {
         'latitude': 32.8794203,
         'longitude': -117.2428555,
         'address': 'Tenaya Hall, San Diego, CA 92161',
         'placeId': 'test_place_id_1',
     }
     doc_ref.create(
         document_data=form
     )
     testing_utils._wait()
     user_location = UserLocation.get(doc_id=self.doc_id)
     d = user_location.to_dict()
     assert d.items() >= {'obj_type': 'UserLocation', 'placeId': 'test_place_id_1',
                  'sublocations': [], 'doc_id': 'test_doc_id_1',
                  'userId': 'user_id_1',
                  'doc_ref': 'locations/test_doc_id_1',
                  'coordinates': {'longitude': -117.2428555,
                                  'latitude': 32.8794203},
                  'address': 'Tenaya Hall, San Diego, CA 92161'}.items()
Пример #3
0
    def test_view(self):
        main.user_sublocation_mediator.start()
        main.user_location_mediator.start()
        main.user_location_view_mediator.start()
        doc_ref = CTX.db.document(self.user_location_path)
        doc_ref.set(
            document_data={'placeId': 'test_place_id_1',
                           'userId': 'user_id_1',
                           'longitude': -117.2428555,
                           'latitude': 32.8794203,
                           'address': 'Tenaya Hall, San Diego, CA 92161',
                           'id': 'test_doc_id_1',
                           }
        )

        testing_utils._wait()
        snapshot = UserLocation.ref_from_id(doc_id=self.user_location_id).get()
        obj = UserLocationView.new(
            snapshot=snapshot
        )
        assert obj.to_dict().items() >= {
            'id': 'test_doc_id_1',
            'address': 'Tenaya Hall, San Diego, CA 92161',
            'latitude': 32.8794203,
            'longitude': -117.2428555,
            'placeId': 'test_place_id_1',
            'sublocations': []
        }.items()
Пример #4
0
    def test_create(self):
        main.user_sublocation_mediator.start()
        main.user_location_mediator.start()
        main.user_location_view_mediator.start()
        doc_ref = CTX.db.document(self.user_location_path)
        UserLocation.new(doc_id=self.user_location_id,
                         user_id=self.user_id,
                         **{
            'coordinates': {
                           'longitude': -117.2428555,
                           'latitude': 32.8794203},
                           'address': 'Tenaya Hall, San Diego, CA 92161'}
        ).save()

        testing_utils._wait()

        sublocation_ref = CTX.db.document(self.expected_path)
        sublocation_ref.create(
            document_data={
                'latitude': 32.87952213052025,
                'longitude': -117.2436009719968,
            }
        )

        # Tests that a new location is created
        testing_utils._wait()
        sublocation = Sublocation.get(doc_id=self.doc_id)
        d = sublocation.to_dict()
        assert d == {'coordinates': {'longitude': -117.2436009719968,
                                     'latitude': 32.87952213052025},
                     'doc_id': 'sublocation_id',
                     'obj_type': 'Sublocation',
                     'doc_ref': 'locations/sublocation_id',
                     'address': 'Scholars Dr S, San Diego, CA 92161, USA'}

        # Tests that the new location is registered as a sublocation
        #       of the parent UserLocation
        user_location = UserLocation.get(doc_id=self.user_location_id)
        d = user_location.to_dict()
        assert d["sublocations"] == [sublocation.doc_ref]
        testing_utils._wait()
Пример #5
0
    def test_view_with_sublocation(self):
        main.user_sublocation_mediator.start()
        main.user_location_mediator.start()
        main.user_location_view_mediator.start()
        doc_ref = CTX.db.document(self.user_location_path)
        doc_ref.set(
            document_data={'placeId': 'test_place_id_1',
                           'userId': 'user_id_1',
                           'longitude': -117.2428555,
                           'latitude': 32.8794203,
                           'address': 'Tenaya Hall, San Diego, CA 92161',
                           'id': 'test_doc_id_1',
                           }
        )

        testing_utils._wait()

        sublocation_ref = CTX.db.document(self.expected_path)
        sublocation_ref.create(
            document_data={
                'latitude': 32.87952213052025,
                'longitude': -117.2436009719968,
            }
        )

        testing_utils._wait()

        snapshot = UserLocation.ref_from_id(doc_id=self.user_location_id).get()
        obj = UserLocationView.new(
            snapshot=snapshot
        )
        assert obj.to_dict().items() >= {
            'id': 'test_doc_id_1',
            'address': 'Tenaya Hall, San Diego, CA 92161',
            'latitude': 32.8794203,
            'longitude': -117.2428555,
            'placeId': 'test_place_id_1',
            'sublocations': [
                {'address': 'Scholars Dr S, San Diego, CA 92161, USA',
                 'coordinates': {'latitude': 32.87952213052025,
                                 'longitude': -117.2436009719968},
                 'doc_id': 'sublocation_id',
                 'doc_ref': 'locations/sublocation_id',
                 'obj_type': 'Sublocation'}]
        }.items()
Пример #6
0
 def propagate_change(self):
     self.location.save()
     UserLocation.add_sublocation(location=self.user_location,
                                  sublocations=[self.location])
Пример #7
0
 def new(cls, *args, doc_id=None, user_location_id=None, **kwargs):
     return super().new(
         *args,
         user_location=UserLocation.get(doc_id=user_location_id),
         location=Sublocation.new(doc_id=doc_id),
         **kwargs)
Пример #8
0
 def new(cls, *args, user_id=None, doc_id=None, **kwargs):
     return super().new(*args,
                        user_location=UserLocation.new(user_id=user_id,
                                                       doc_id=doc_id),
                        **kwargs)
Пример #9
0
    instance_get_view=rider_booking_mediator._default_instance_get_view())

user_booking_mediator = UserBookingEditMediator(
    query=Context.db.collection_group("bookings_POST"))

user_hosting_mediator = UserHostingEditMediator(
    query=Context.db.collection_group("hostings_POST"))

user_location_mediator = UserLocationFormMediator(
    query=Context.db.collection_group("locations_POST"))

user_sublocation_mediator = UserSublocationFormMediator(
    query=Context.db.collection_group("sublocations_POST"))

user_location_view_mediator = UserLocationViewMediator(
    query=UserLocation.get_query())

booking_mediator = UserBookingMediator(query=RiderBooking.get_query())

ride_host_mediator = \
    RHMediator(view_model_cls=RideHostForm, app=app, mutation_cls=RideHostMutation)

ride_host_mediator.add_list_post(
    rule='/rideHosts',
    list_post_view=ride_host_mediator._default_list_post_view())

hosting_mediator = UserHostingMediator(query=RideHost.get_query())

# target_match_mediator = TargetMatchMediator(
#     query=RiderTarget.get_query()
# )
Пример #10
0
    def setUp(self):
        self.arr = [[12000000, 12005000, 32.8802438, -117.2426505, 'A'],
                    [12000000, 12005000, 32.8796722, -117.2414153, 'B'],
                    [12000000, 12005000, 32.8687404, -117.2306258, 'C'],
                    [12005000, 12006000, 32.8805864, -117.2318744, 'D'],
                    [12007000, 12009000, 32.83228020000001, -117.1480747, 'E'],
                    [12009001, 12009900, 32.8255484, -117.1543703, 'F'],
                    [11000000, 11009000, 32.8248571, -117.1559327, 'G']]

        arr = self.arr

        rideRequests = list()

        configs = list()
        configs_other = [[12000000, 12005000, 'A'],
                    [12000000, 12005000, 'B'],
                    [12000000, 12005000, 'C'],
                    [12005000, 12006000, 'D'],
                    [12007000, 12009000, 'E'],
                    [12009001, 12009900, 'F'],
                    [11000000, 11009000, 'G']]

        addresses = [

            # These are ucsd addresed
            "9500 Gilman Dr, La Jolla, CA 92093",
            "Muir Ln, San Diego, CA 92161",
            "8825 Villa La Jolla Dr, La Jolla, CA 92037",  # Whole foods
            "3390 Voigt Dr, San Diego, CA 92121",  # Canyonview Aquatic Center

            # These are Kearny Mesa Addressed
            "8199 Clairemont Mesa Blvd Suite H, San Diego, CA 92111",  # Camellia
            "4681 Convoy St, San Diego, CA 92111",  # Tajima Japanese Restaurant
            "4646 Convoy St, San Diego, CA 92111"  # Tasty Noodle House

        ]

        locations_ds = [
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.8802438, 'longitude': -117.2426505},
         'address': '9500 Gilman Dr, La Jolla, CA 92093'},
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.8796722, 'longitude': -117.2414153},
         'address': 'Muir Ln, San Diego, CA 92161'},
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.8687404, 'longitude': -117.2306258},
         'address': '8825 Villa La Jolla Dr, La Jolla, CA 92037'},
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.8805864, 'longitude': -117.2318744},
         'address': '3390 Voigt Dr, San Diego, CA 92121'},
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.83228020000001, 'longitude': -117.1480747},
         'address': '8199 Clairemont Mesa Blvd Suite H, San Diego, CA 92111'},
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.8255484, 'longitude': -117.1543703},
         'address': '4681 Convoy St, San Diego, CA 92111'},
        {'locationCategory': 'user', 'coordinates': {'latitude': 32.8248571, 'longitude': -117.1559327},
         'address': '4646 Convoy St, San Diego, CA 92111'},
        ]

        for i in range(len(configs_other)):
            earliest, latest, firestoreRef = configs_other[i]
            address = addresses[i]
            location_d = locations_ds[i]
            ride_request = test.store.model.getMockRideRequest(
                earliest=earliest, latest=latest, firestoreRef=firestoreRef, returnDict=False)

            # Generate Test Locations
            location = UserLocation.from_dict(location_d)
            location.save()
            ref = location.doc_ref
            ride_request.origin_ref = ref

            rideRequests.append(ride_request)

        self.ride_requests = rideRequests
Пример #11
0
 def tearDown(self) -> None:
     CTX.db.document(self.expected_path).delete()
     UserLocation.ref_from_id(self.doc_id).delete()
Пример #12
0
 def test_new(self):
     obj = UserLocation.new(coordinates={
         "latitude": 32.8794203,
         "longitude": -117.2428555
     }, address="Tenaya Hall, San Diego, CA 92161")
     assert obj.address == "Tenaya Hall, San Diego, CA 92161"