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 ( )
2018-01-11 07:35:07 +00:00
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
2018-01-11 07:35:07 +00:00
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
2018-01-11 07:35:07 +00:00
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
2018-01-11 07:35:07 +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 ( )