ogn-python/tests/collect/test_stats.py

59 wiersze
2.3 KiB
Python
Czysty Zwykły widok Historia

2017-12-13 13:08:29 +00:00
import unittest
import os
from ogn.model import DeviceStats
from ogn.collect.stats import update_device_stats
class TestDB(unittest.TestCase):
session = None
engine = None
app = None
def setUp(self):
os.environ['OGN_CONFIG_MODULE'] = 'config.test'
from ogn.commands.dbutils import engine, session
self.session = session
self.engine = engine
from ogn.commands.database import init
init()
session.execute("INSERT INTO devices(address) VALUES('DDEFF7')")
session.execute("INSERT INTO receivers(name) VALUES('Koenigsdf')")
session.execute("INSERT INTO receivers(name) VALUES('Ohlstadt')")
2017-12-13 13:08:29 +00:00
def tearDown(self):
session = self.session
session.execute("DELETE FROM aircraft_beacons")
session.execute("DELETE FROM devices")
2017-12-13 13:08:29 +00:00
session.execute("DELETE FROM device_stats")
session.execute("DELETE FROM receiver_stats")
def test_update_device_stats(self):
session = self.session
session.execute("INSERT INTO aircraft_beacons(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Koenigsdf',604,'2016-07-02 10:47:12')")
session.execute("INSERT INTO aircraft_beacons(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Koenigsdf',605,'2016-07-02 10:47:32')")
session.execute("INSERT INTO aircraft_beacons(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Koenigsdf',606,'2016-07-02 10:47:52')")
session.execute("INSERT INTO aircraft_beacons(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Ohlstadt',606,'2016-07-02 10:48:12')")
session.execute("INSERT INTO aircraft_beacons(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Ohlstadt',606,'2016-07-02 10:48:24')")
2017-12-13 13:08:29 +00:00
session.execute("UPDATE aircraft_beacons SET device_id = d.id, receiver_id = r.id FROM devices d, receivers r WHERE aircraft_beacons.address=d.address AND aircraft_beacons.receiver_name=r.name")
2017-12-13 13:08:29 +00:00
update_device_stats(session, date='2016-07-02')
stats = session.query(DeviceStats).all()
self.assertEqual(len(stats), 1)
stat = stats[0]
self.assertEqual(stat.receiver_count, 2)
self.assertEqual(stat.aircraft_beacon_count, 5)
self.assertEqual(stat.max_altitude, 606)
if __name__ == '__main__':
unittest.main()