Ejemplo n.º 1
0
 def update(self, siri_ride: SiriRide) -> None:
     """
     update exist SiriRide record in database
     :param siri_ride: Exist SiriRide object that should switch the record in database
     raise FilterError in case document is not exists in database
     """
     doc = siri_ride.to_json()
     doc.pop(self.DOC_ID_KEY)
     self.mongo_crud.update(self.COLLECTION_NAME,
                            {self.DB_ID_KEY: siri_ride.doc_id}, doc)
Ejemplo n.º 2
0
    def test_to_json_returns_valid_dict(self):
        instance = SiriRide(doc_id='6', line_name='25a', license_plate='1234567', operator_ref=4, line_ref=456,
                            departure_time=datetime.now().time(), journey_ref=234,
                            siri_records={SiriRecord(recorded_at=datetime.now().time(),
                                                     response_timestamp=datetime.now(),
                                                     expected_arrival_time=datetime.now().time(),
                                                     current_location=GeoPoint(12.12, 23.23))})

        actual = instance.to_json()

        validate(actual, self.schema, format_checker=FormatChecker())
Ejemplo n.º 3
0
    def test_create_and_read(self):
        ride = SiriRide(line_name='25a', license_plate='1234567', operator_ref=4, line_ref=456,
                        departure_time=datetime.now().time(), journey_ref=234, siri_records={
                            SiriRecord(recorded_at=datetime.now().time(), response_timestamp=datetime.now(),
                                       expected_arrival_time=datetime.now().time(),
                                       current_location=GeoPoint(12.12, 23.23))})

        doc_id = self.crud.create(ride)

        actual = self.crud.read(doc_id).to_json()

        self.assertEqual(ride.to_json(), actual)
Ejemplo n.º 4
0
    def test_create_and_read_with_numpy_int_16(self):
        # Arrange
        ride = SiriRide(line_name='25a', license_plate='1234567', operator_ref=np.int16(4), line_ref=np.int16(456),
                        departure_time=datetime.now().time(), journey_ref=np.int16(234),
                        siri_records={SiriRecord(recorded_at=datetime.now().time(),
                                                 response_timestamp=datetime.now(),
                                                 expected_arrival_time=datetime.now().time(),
                                                 current_location=GeoPoint(12.12, 23.23))})

        # Act
        doc_id = self.crud.create(ride)
        actual = self.crud.read(doc_id).to_json()

        # Assert
        self.assertEqual(ride.to_json(), actual)
Ejemplo n.º 5
0
 def create(self, siri_ride: SiriRide) -> ObjectId:
     """
     Create new ``SiriRide`` representation in database.
     :param siri_ride: SiriRide object that represent one ride
     :return: A MongoDB ObjectId.
     :raises: AlreadyExist in case `siri_ride` has db doc_id
     """
     if siri_ride.doc_id is not None:
         raise AlreadyExist(
             "Document is already exist in Database. please use update instead"
         )
     doc = siri_ride.to_json()
     doc.pop(self.DOC_ID_KEY)
     res = self.mongo_crud.create(self.COLLECTION_NAME, doc)
     siri_ride.doc_id = res
     return res