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)
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)
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())
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)
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)
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)) })
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)
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)