Beispiel #1
0
    def runTest(self):
        """Test the data_retrieval of the latest stations."""
        RealTimeProcessing.update_stations([s for s in self.stations_multiple
                                            if s['number'] in [1, 2, 3]])
        bikes_static = DublinBikesStation.objects.all()
        latest_bikes = []
        for bike_static in bikes_static:
            bikes_real = bike_static.dublinbikesstationrealtimeupdate_set.all()
            max_latest_update = datetime.datetime.utcfromtimestamp(0).replace(
                tzinfo=datetime.timezone.utc)
            latest_bikes_real = None
            for bike_real in bikes_real:
                if bike_real.station_last_update > max_latest_update:
                    max_latest_update = bike_real.station_last_update
                    latest_bikes_real = bike_real

            latest_bikes.append({
                "station_number": bike_static.station_number,
                "latitude": bike_static.position.coords[1],
                "longitude": bike_static.position.coords[0],
                "name": bike_static.name,
                "status": latest_bikes_real.status,
                "timestamp": latest_bikes_real.timestamp,
                "station_last_update":
                    latest_bikes_real.station_last_update.replace(
                        tzinfo=datetime.timezone.utc
                    ),
                "available_bikes": float(latest_bikes_real.available_bikes),
                "available_bike_stands":
                    float(latest_bikes_real.available_bike_stands),
                "bike_stands": float(latest_bikes_real.bike_stands)
            })

        ground_truth_bike = sorted(latest_bikes,
                                   key=lambda x: x["station_number"])
        ground_truth_bike = [
            d[k] for d in ground_truth_bike for k in sorted(d.keys())
        ]
        latest_bikes = sorted(RealTimeProcessing.getLatestStationsFromDB(),
                              key=lambda x: x["station_number"])
        latest_bikes = [
            d[k] for d in latest_bikes for k in sorted(d.keys())
        ]
        # print(latest_bikes)
        self.assertEqual(ground_truth_bike, latest_bikes)
Beispiel #2
0
def getLatestStationJSON():
    """
    Get the json formatted last station updates.

    In realtime update, so only with delta_s = 60

    @:return json of the stations updates
    """
    format = "%Y-%m-%d %H:%M"
    latestStations = RealTimeProcessing.getLatestStationsFromDB()
    date_list = HistoricAnalysis.getBikesDistinctTimes(delta_s=60)
    times = [d.strftime(format) for d in date_list]

    data = {'nbIntervals': len(times), 'dateTimeOfIndex': times}
    data = json.dumps({
        "rtstations": convertToGeoJson(latestStations),
        'timerange': data
    })
    return data
Beispiel #3
0
 def runTest(self):
     """Get dynamic and static data."""
     RealTimeProcessing.update_stations(self.stations[:10])
     # TODO: Implement!
     RealTimeProcessing.getLatestStationsFromDB()