def test_init_trip(self): # prepare args = dict(trip_id='24104916_010117', trip_date=datetime.date(2017, 2, 2)) # exec trip = RealTimeArrivals.Trip(**args) # test self.assertEqual(trip.trip_date, args['trip_date']) self.assertEqual(trip.trip_id, args['trip_id'])
def test_stop_between_records(self): trip = RealTimeArrivals.Trip() trip.records = records[1:] trip._add_route_offset_in_meters(stops[-1].shape_dist_traveled) bef, aft = trip._get_before_and_after_records(stop=stops[2]) self.assertEqual(bef, records[1]) self.assertEqual(aft, records[2])
def test_trip_fill_set_route_offset_in_meters(self): # prepare args = dict(trip_id='24104916_010117', trip_date=datetime.date(2017, 2, 2)) trip = RealTimeArrivals.Trip(crud =crud_stub.CrudStub(), **args) # exec trip._fill_() for i in trip.records: self.assertTrue(i.route_offset_in_meters is not None)
def test_all_records_AFTER_stop_get_no_real_time(self): # prepare trip = RealTimeArrivals.Trip(crud=StubRecordsAfter()) # exec trip._fill_() # trip.real_time() # test self.assertFalse(trip.real_times)
def test_stop_after_records(self): trip = RealTimeArrivals.Trip() trip.records = records[1:] trip._add_route_offset_in_meters(1) try: trip._get_before_and_after_records(stop=stops[3]) except ValueError: return self.fail()
def test_trip_real_time_without_exception(self): # noinspection PyBroadException try: # prepare args = dict(trip_id='24104916_010117', trip_date=datetime.date(2017, 2, 2)) trip = RealTimeArrivals.Trip(crud =crud_stub.CrudStub(), **args) # exec trip._fill_() except Exception: self.fail("exception")
def test_trip_fill_set_records(self): # prepare args = dict(trip_id='24104916_010117', trip_date=datetime.date(2017, 2, 2)) trip = RealTimeArrivals.Trip(crud =crud_stub.CrudStub(), **args) # exec trip._fill_() expect = len({x['recorded_at_time'] for x in crud_stub.CrudStub.raw_records}) self.assertEqual(expect, len(trip.records))
def test_trip_fill_sort_records(self): # prepare args = dict(trip_id='24104916_010117', trip_date=datetime.date(2017, 2, 2)) trip = RealTimeArrivals.Trip(crud =crud_stub.CrudStub(), **args) # exec trip._fill_() for num, record in enumerate(trip.records[1:]): curr = record.route_offset prev = trip.records[num].route_offset self.assertTrue(curr > prev)
def test_trip_fill_sort_stops(self): # prepare args = dict(trip_id='24104916_010117', trip_date=datetime.date(2017, 2, 2)) trip = RealTimeArrivals.Trip(crud =crud_stub.CrudStub(), **args) # exec trip._fill_() for num, stop in enumerate(trip.stops[1:]): curr = stop.stop_sequence prev = trip.stops[num].stop_sequence self.assertTrue(curr > prev)
def get_relevant_trips_from_gtfs(self, date: datetime.date): sql = """SELECT trip_id_from_gtfs, date_trunc('day', max(recorded_at_time)) FROM siri_arrivals WHERE recorded_at_time between '{}' and '{}' GROUP BY trip_id_from_gtfs;""" with self.conn.cursor() as curs: curs.execute(sql.format(date, (date + datetime.timedelta(days=1)))) return [ RealTimeArrivals.Trip(row[0], row[1], self) for row in curs if row[0] ]
def test_stop_BETWEEN_records_get_real_time(self): # prepare trip = RealTimeArrivals.Trip(crud=StubRecordsRegular()) # exec trip._fill_() # trip.real_time() # test self.assertTrue(trip.real_times) self.assertTrue(trip.real_times[0].real_time == datetime.datetime(2017, 1, 1, 12, 45)) self.assertTrue(trip.real_times[0].speed == 2.0)
def test_threadpool(self): pool = ThreadPoolExecutor() trip_ids = ["27782048_310717", "27782049_310717"] with Cruds.Connection(**conn_config) as c: trips = [RealTimeArrivals.Trip(trip_date=datetime.date(2017, 7, 31), trip_id= i, crud=Cruds.CrudPostgresql(c)) for i in trip_ids] futuers = [pool.submit(trip) for trip in trips] for i in futuers: print (i) i.result(120)