Ejemplo n.º 1
0
    def test_parse_csv_file(self):
        # Arrange
        expected = SiriRide(
            line_name='290',
            license_plate='5596287',
            operator_ref=18,
            line_ref=10583,
            departure_time=datetime.time(22, 40),
            journey_ref=47405958,
            siri_records={
                SiriRecord(recorded_at=datetime.time(23, 9, 33),
                           response_timestamp=datetime.datetime(
                               2020, 6, 24, 23, 11, 30),
                           expected_arrival_time=datetime.time(23, 34),
                           current_location=GeoPoint(longitude=31.712017,
                                                     latitude=35.17242))
            })

        f = io.StringIO(
            "2020-06-24T23:11:30,[line 290 v 5596287 oad 22:40 ea 23:34],18,10583,290,47405958,2020-06-24T"
            "22:40:00,5596287,2020-06-24T23:34:00,2020-06-24T23:09:33,31.712017,35.17242,2020-06-24,9807,2"
            ",v2")
        parser = SiriLogParser(InMemoryRidesCacheMechanism())

        # Act
        parser.parse_csv_file(f)
        actual = next(parser.get_rides())

        # Assert
        self.assertEqual(expected, actual)
Ejemplo n.º 2
0
    def test_add_ride_with_one_record(self):

        # Prepare
        record = SiriRide(
            line_name='290',
            license_plate='5596287',
            operator_ref=18,
            line_ref=10583,
            departure_time=datetime.time(22, 40),
            journey_ref=47405958,
            siri_records={
                SiriRecord(recorded_at=datetime.time(23, 9, 33),
                           response_timestamp=datetime.datetime(
                               2020, 6, 24, 23, 11, 30),
                           expected_arrival_time=datetime.time(23, 34),
                           current_location=GeoPoint(longitude=31.712017,
                                                     latitude=35.17242))
            })
        conn = sqlite3.connect(self.DB_FILE)
        d = SqliteRidesCacheMechanism(conn)

        # Act
        d.add_ride(record)
        actual = next(d.get_rides())

        # Assert
        self.assertEqual(record, actual)
Ejemplo n.º 3
0
 def test_create_with_doc_id_raise_AlreadyExist_exception(self):
     ride = SiriRide(doc_id="FOO", 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))})
     with self.assertRaises(AlreadyExist):
         self.crud.create(ride)
Ejemplo n.º 4
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.º 5
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.º 6
0
    def test_find(self):
        # Arrange
        ride_1 = 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))})

        ride_2 = SiriRide(line_name='4', license_plate='1234567', operator_ref=4, line_ref=456,
                          departure_time=datetime.now().time(), journey_ref=678, siri_records={
                            SiriRecord(recorded_at=datetime.now().time(), response_timestamp=datetime.now(),
                                       expected_arrival_time=datetime.now().time(),
                                       current_location=GeoPoint(42.12, 26.23))})
        expected = [ride_1, ride_2]
        self.crud.create(ride_1)
        self.crud.create(ride_2)

        # Act
        actual = list(self.crud.find(filter=dict(type="siri_ride")))

        # Assert
        self.assertEqual(expected, actual)
Ejemplo n.º 7
0
    def setUp(self) -> None:
        self.ride = SiriRide(
            line_name='290',
            license_plate='5596287',
            operator_ref=18,
            line_ref=10583,
            departure_time=datetime.time(22, 40),
            journey_ref=47405958,
            siri_records={
                SiriRecord(recorded_at=datetime.time(23, 9, 33),
                           response_timestamp=datetime.datetime(
                               2020, 6, 24, 23, 11, 30),
                           expected_arrival_time=datetime.time(23, 34),
                           current_location=GeoPoint(longitude=31.712017,
                                                     latitude=35.17242))
            })

        self.updated_ride = SiriRide(
            line_name='290',
            license_plate='5596287',
            operator_ref=18,
            line_ref=10583,
            departure_time=datetime.time(22, 40),
            journey_ref=47405958,
            siri_records={
                SiriRecord(recorded_at=datetime.time(23, 9, 33),
                           response_timestamp=datetime.datetime(
                               2020, 6, 24, 23, 11, 30),
                           expected_arrival_time=datetime.time(23, 34),
                           current_location=GeoPoint(longitude=31.712017,
                                                     latitude=35.17242)),
                SiriRecord(recorded_at=datetime.time(23, 11, 33),
                           response_timestamp=datetime.datetime(
                               2020, 6, 24, 23, 12, 45),
                           expected_arrival_time=datetime.time(23, 34),
                           current_location=GeoPoint(longitude=32.34,
                                                     latitude=36.65))
            })
Ejemplo n.º 8
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)