Follow table naming convention --> plural

pull/68/head
Konstantin Gründger 2018-01-11 08:35:07 +01:00
rodzic 6b6f86f1ca
commit 11ded87599
24 zmienionych plików z 156 dodań i 156 usunięć

Wyświetl plik

@ -28,7 +28,7 @@ app = Celery('ogn.collect',
include=["ogn.collect.database",
"ogn.collect.logbook",
"ogn.collect.stats",
"ogn.collect.takeoff_landing",
"ogn.collect.takeoff_landings",
"ogn.collect.ognrange"
])

Wyświetl plik

@ -13,9 +13,9 @@ logger = get_task_logger(__name__)
@app.task
def update_receiver_coverage(session=None):
"""Add/update receiver coverage entries."""
"""Add/update receiver coverages."""
logger.info("Compute receiver coverage.")
logger.info("Compute receiver coverages.")
if session is None:
session = app.session
@ -46,7 +46,7 @@ def update_receiver_coverage(session=None):
sq.c.date) \
.subquery()
# if a receiver coverage entry exist --> update it
# if a receiver coverage entry exist --> update it
upd = update(ReceiverCoverage) \
.where(and_(ReceiverCoverage.location_mgrs == query.c.reduced_mgrs,
ReceiverCoverage.receiver_id == query.c.receiver_id,

Wyświetl plik

@ -13,7 +13,7 @@ logger = get_task_logger(__name__)
@app.task
def update_device_stats(session=None, date=None):
"""Add/update entries in device stats table."""
"""Add/update device stats."""
if session is None:
session = app.session
@ -46,14 +46,14 @@ def update_device_stats(session=None, date=None):
res = session.execute(ins)
insert_counter = res.rowcount
session.commit()
logger.debug("DeviceStats entries for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter))
logger.debug("DeviceStats for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter))
return "DeviceStats entries for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter)
return "DeviceStats for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter)
@app.task
def update_receiver_stats(date=None):
"""Add/update entries in receiver stats table."""
"""Add/update receiver stats."""
if not date:
logger.warn("A date is needed for calculating stats. Exiting")
@ -83,6 +83,6 @@ def update_receiver_stats(date=None):
res = session.execute(ins)
insert_counter = res.rowcount
session.commit()
logger.debug("ReceiverStats entries for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter))
logger.debug("ReceiverStats for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter))
return "ReceiverStats entries for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter)
return "ReceiverStats for {}: {} deleted, {} inserted".format(date, deleted_counter, insert_counter)

Wyświetl plik

@ -13,7 +13,7 @@ logger = get_task_logger(__name__)
@app.task
def update_takeoff_landing(session=None):
def update_takeoff_landings(session=None):
"""Compute takeoffs and landings."""
logger.info("Compute takeoffs and landings.")

Wyświetl plik

@ -112,11 +112,11 @@ def convert(sourcefile, path=''):
def drop_indices():
"""Drop indices of AircraftBeacon."""
session.execute("""
DROP INDEX IF EXISTS idx_aircraft_beacon_location;
DROP INDEX IF EXISTS ix_aircraft_beacon_receiver_id;
DROP INDEX IF EXISTS ix_aircraft_beacon_device_id;
DROP INDEX IF EXISTS ix_aircraft_beacon_timestamp;
DROP INDEX IF EXISTS ix_aircraft_beacon_status;
DROP INDEX IF EXISTS idx_aircraft_beacons_location;
DROP INDEX IF EXISTS ix_aircraft_beacons_receiver_id;
DROP INDEX IF EXISTS ix_aircraft_beacons_device_id;
DROP INDEX IF EXISTS ix_aircraft_beacons_timestamp;
DROP INDEX IF EXISTS ix_aircraft_beacons_status;
""")
print("Dropped indices of AircraftBeacon")
@ -125,11 +125,11 @@ def drop_indices():
def create_indices():
"""Create indices for AircraftBeacon."""
session.execute("""
CREATE INDEX idx_aircraft_beacon_location ON aircraft_beacon USING GIST(location);
CREATE INDEX ix_aircraft_beacon_receiver_id ON aircraft_beacon USING BTREE(receiver_id);
CREATE INDEX ix_aircraft_beacon_device_id ON aircraft_beacon USING BTREE(device_id);
CREATE INDEX ix_aircraft_beacon_timestamp ON aircraft_beacon USING BTREE(timestamp);
CREATE INDEX ix_aircraft_beacon_status ON aircraft_beacon USING BTREE(status);
CREATE INDEX idx_aircraft_beacon_location ON aircraft_beacons USING GIST(location);
CREATE INDEX ix_aircraft_beacon_receiver_id ON aircraft_beacons USING BTREE(receiver_id);
CREATE INDEX ix_aircraft_beacon_device_id ON aircraft_beacons USING BTREE(device_id);
CREATE INDEX ix_aircraft_beacon_timestamp ON aircraft_beacons USING BTREE(timestamp);
CREATE INDEX ix_aircraft_beacon_status ON aircraft_beacons USING BTREE(status);
""")
print("Created indices for AircraftBeacon")
@ -175,12 +175,12 @@ def import_logfile(path):
receiver_beacon_header = ','.join(ReceiverBeacon.get_csv_columns())
if header == aircraft_beacon_header:
if check_no_beacons('aircraft_beacon', reference_date_string):
if check_no_beacons('aircraft_beacons', reference_date_string):
import_aircraft_beacon_logfile(path)
else:
print("For {} beacons already exist. Skipping".format(reference_date_string))
elif header == receiver_beacon_header:
if check_no_beacons('receiver_beacon', reference_date_string):
if check_no_beacons('receiver_beacons', reference_date_string):
import_receiver_beacon_logfile(path)
else:
print("For {} beacons already exist. Skipping".format(reference_date_string))
@ -198,8 +198,8 @@ def check_no_beacons(tablename, reference_date_string):
def import_aircraft_beacon_logfile(csv_logfile):
SQL_TEMPTABLE_STATEMENT = """
DROP TABLE IF EXISTS aircraft_beacon_temp;
CREATE TABLE aircraft_beacon_temp(
DROP TABLE IF EXISTS aircraft_beacons_temp;
CREATE TABLE aircraft_beacons_temp(
location geometry,
altitude integer,
name character varying,
@ -229,7 +229,7 @@ def import_aircraft_beacon_logfile(csv_logfile):
session.execute(SQL_TEMPTABLE_STATEMENT)
SQL_COPY_STATEMENT = """
COPY aircraft_beacon_temp(%s) FROM STDIN WITH
COPY aircraft_beacons_temp(%s) FROM STDIN WITH
CSV
HEADER
DELIMITER AS ','
@ -251,46 +251,46 @@ def import_aircraft_beacon_logfile(csv_logfile):
# create device if not exist
session.execute("""
INSERT INTO device(address)
INSERT INTO devices(address)
SELECT DISTINCT(t.address)
FROM aircraft_beacon_temp t
WHERE NOT EXISTS (SELECT 1 FROM device d WHERE d.address = t.address)
FROM aircraft_beacons_temp t
WHERE NOT EXISTS (SELECT 1 FROM devices d WHERE d.address = t.address)
""")
print("Inserted missing Devices")
# create receiver if not exist
session.execute("""
INSERT INTO receiver(name)
INSERT INTO receivers(name)
SELECT DISTINCT(t.receiver_name)
FROM aircraft_beacon_temp t
WHERE NOT EXISTS (SELECT 1 FROM receiver r WHERE r.name = t.receiver_name)
FROM aircraft_beacons_temp t
WHERE NOT EXISTS (SELECT 1 FROM receivers r WHERE r.name = t.receiver_name)
""")
print("Inserted missing Receivers")
# disable constraint trigger
session.execute("""
ALTER TABLE aircraft_beacon DISABLE TRIGGER ALL
ALTER TABLE aircraft_beacons DISABLE TRIGGER ALL
""")
print("Disabled constraint triggers")
session.execute("""
INSERT INTO aircraft_beacon(location, altitude, name, receiver_name, timestamp, track, ground_speed,
INSERT INTO aircraft_beacons(location, altitude, name, receiver_name, timestamp, track, ground_speed,
address_type, aircraft_type, stealth, address, climb_rate, turn_rate, flightlevel, signal_quality, error_count, frequency_offset, gps_status, software_version, hardware_version, real_address, signal_power,
status, receiver_id, device_id)
SELECT t.location, t.altitude, t.name, t.receiver_name, t.timestamp, t.track, t.ground_speed,
t.address_type, t.aircraft_type, t.stealth, t.address, t.climb_rate, t.turn_rate, t.flightlevel, t.signal_quality, t.error_count, t.frequency_offset, t.gps_status, t.software_version, t.hardware_version, t.real_address, t.signal_power,
0, r.id, d.id
FROM aircraft_beacon_temp t, receiver r, device d
FROM aircraft_beacons_temp t, receivers r, devices d
WHERE t.receiver_name = r.name AND t.address = d.address
""")
print("Wrote AircraftBeacons from temporary table into final table")
session.execute("""
ALTER TABLE aircraft_beacon ENABLE TRIGGER ALL
ALTER TABLE aircraft_beacons ENABLE TRIGGER ALL
""")
print("Enabled constraint triggers")
session.execute("""DROP TABLE aircraft_beacon_temp""")
session.execute("""DROP TABLE aircraft_beacons_temp""")
print("Dropped temporary table")
session.commit()
@ -301,8 +301,8 @@ def import_receiver_beacon_logfile(csv_logfile):
"""Import csv logfile <arg: csv logfile>."""
SQL_TEMPTABLE_STATEMENT = """
DROP TABLE IF EXISTS receiver_beacon_temp;
CREATE TABLE receiver_beacon_temp(
DROP TABLE IF EXISTS receiver_beacons_temp;
CREATE TABLE receiver_beacons_temp(
location geometry,
altitude integer,
name character varying,
@ -335,7 +335,7 @@ def import_receiver_beacon_logfile(csv_logfile):
session.execute(SQL_TEMPTABLE_STATEMENT)
SQL_COPY_STATEMENT = """
COPY receiver_beacon_temp(%s) FROM STDIN WITH
COPY receiver_beacons_temp(%s) FROM STDIN WITH
CSV
HEADER
DELIMITER AS ','
@ -357,26 +357,26 @@ def import_receiver_beacon_logfile(csv_logfile):
# create receiver if not exist
session.execute("""
INSERT INTO receiver(name)
INSERT INTO receivers(name)
SELECT DISTINCT(t.name)
FROM receiver_beacon_temp t
WHERE NOT EXISTS (SELECT 1 FROM receiver r WHERE r.name = t.name)
FROM receiver_beacons_temp t
WHERE NOT EXISTS (SELECT 1 FROM receivers r WHERE r.name = t.name)
""")
print("Inserted missing Receivers")
session.execute("""
INSERT INTO receiver_beacon(location, altitude, name, receiver_name, timestamp, track, ground_speed,
INSERT INTO receiver_beacons(location, altitude, name, receiver_name, timestamp, track, ground_speed,
version, platform, cpu_load, free_ram, total_ram, ntp_error, rt_crystal_correction, voltage,amperage, cpu_temp, senders_visible, senders_total, rec_input_noise, senders_signal, senders_messages, good_senders_signal, good_senders, good_and_bad_senders,
status, receiver_id)
SELECT t.location, t.altitude, t.name, t.receiver_name, t.timestamp, t.track, t.ground_speed,
t.version, t.platform, t.cpu_load, t.free_ram, t.total_ram, t.ntp_error, t.rt_crystal_correction, t.voltage,amperage, t.cpu_temp, t.senders_visible, t.senders_total, t.rec_input_noise, t.senders_signal, t.senders_messages, t.good_senders_signal, t.good_senders, t.good_and_bad_senders,
0, r.id
FROM receiver_beacon_temp t, receiver r
FROM receiver_beacons_temp t, receivers r
WHERE t.name = r.name
""")
print("Wrote ReceiverBeacons from temporary table into final table")
session.execute("""DROP TABLE receiver_beacon_temp""")
session.execute("""DROP TABLE receiver_beacons_temp""")
print("Dropped temporary table")
session.commit()

Wyświetl plik

@ -4,7 +4,7 @@ from datetime import timedelta, datetime
from manager import Manager
from ogn.collect.logbook import update_logbook
from ogn.collect.takeoff_landing import update_takeoff_landing
from ogn.collect.takeoff_landing import update_takeoff_landings
from ogn.commands.dbutils import session
from ogn.model import Device, DeviceInfo, TakeoffLanding, Airport, Logbook
from sqlalchemy import and_, or_

Wyświetl plik

@ -5,7 +5,7 @@ from .beacon import Beacon
class AircraftBeacon(Beacon):
__tablename__ = "aircraft_beacon"
__tablename__ = "aircraft_beacons"
# Flarm specific data
address_type = Column(SmallInteger)
@ -43,15 +43,15 @@ class AircraftBeacon(Beacon):
location_mgrs = Column(String(15), index=True)
# Relations
receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'))
receiver_id = Column(Integer, ForeignKey('receivers.id', ondelete='SET NULL'))
receiver = relationship('Receiver', foreign_keys=[receiver_id], backref='aircraft_beacons')
device_id = Column(Integer, ForeignKey('device.id', ondelete='SET NULL'))
device_id = Column(Integer, ForeignKey('devices.id', ondelete='SET NULL'))
device = relationship('Device', foreign_keys=[device_id], backref='aircraft_beacons')
# Multi-column indices
Index('ix_aircraft_beacon_receiver_id_receiver_name', 'receiver_id', 'receiver_name')
Index('ix_aircraft_beacon_device_id_address', 'device_id', 'address')
Index('ix_aircraft_beacons_receiver_id_receiver_name', 'receiver_id', 'receiver_name')
Index('ix_aircraft_beacons_device_id_address', 'device_id', 'address')
def __repr__(self):
return "<AircraftBeacon %s: %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s>" % (

Wyświetl plik

@ -6,7 +6,7 @@ from .base import Base
class Airport(Base):
__tablename__ = "airport"
__tablename__ = "airports"
id = Column(Integer, primary_key=True)

Wyświetl plik

@ -5,7 +5,7 @@ from .base import Base
class Device(Base):
__tablename__ = 'device'
__tablename__ = 'devices'
id = Column(Integer, primary_key=True)
address = Column(String(6), index=True)

Wyświetl plik

@ -5,7 +5,7 @@ from .base import Base
class DeviceInfo(Base):
__tablename__ = 'device_info'
__tablename__ = 'device_infos'
id = Column(Integer, primary_key=True)
address_type = None
@ -20,7 +20,7 @@ class DeviceInfo(Base):
address_origin = Column(SmallInteger)
# Relations
device_id = Column(Integer, ForeignKey('device.id', ondelete='SET NULL'), index=True)
device_id = Column(Integer, ForeignKey('devices.id', ondelete='SET NULL'), index=True)
device = relationship('Device', foreign_keys=[device_id], backref='infos')
def __repr__(self):

Wyświetl plik

@ -15,7 +15,7 @@ class DeviceStats(Base):
max_altitude = Column(Float)
# Relations
device_id = Column(Integer, ForeignKey('device.id', ondelete='SET NULL'), index=True)
device_id = Column(Integer, ForeignKey('devices.id', ondelete='SET NULL'), index=True)
device = relationship('Device', foreign_keys=[device_id], backref='stats')
def __repr__(self):

Wyświetl plik

@ -18,13 +18,13 @@ class Logbook(Base):
max_altitude = Column(Integer)
# Relations
takeoff_airport_id = Column(Integer, ForeignKey('airport.id', ondelete='CASCADE'), index=True)
takeoff_airport_id = Column(Integer, ForeignKey('airports.id', ondelete='CASCADE'), index=True)
takeoff_airport = relationship('Airport', foreign_keys=[takeoff_airport_id])
landing_airport_id = Column(Integer, ForeignKey('airport.id', ondelete='CASCADE'), index=True)
landing_airport_id = Column(Integer, ForeignKey('airports.id', ondelete='CASCADE'), index=True)
landing_airport = relationship('Airport', foreign_keys=[landing_airport_id])
device_id = Column(Integer, ForeignKey('device.id', ondelete='CASCADE'), index=True)
device_id = Column(Integer, ForeignKey('devices.id', ondelete='CASCADE'), index=True)
device = relationship('Device', foreign_keys=[device_id])
@hybrid_property

Wyświetl plik

@ -8,7 +8,7 @@ from .geo import Location
class Receiver(Base):
__tablename__ = "receiver"
__tablename__ = "receivers"
id = Column(Integer, primary_key=True)

Wyświetl plik

@ -5,7 +5,7 @@ from .beacon import Beacon
class ReceiverBeacon(Beacon):
__tablename__ = "receiver_beacon"
__tablename__ = "receiver_beacons"
# ReceiverBeacon specific data
version = Column(String)
@ -34,11 +34,11 @@ class ReceiverBeacon(Beacon):
status = Column(SmallInteger, index=True)
# Relations
receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'))
receiver_id = Column(Integer, ForeignKey('receivers.id', ondelete='SET NULL'))
receiver = relationship('Receiver', foreign_keys=[receiver_id], backref='receiver_beacons')
# Multi-column indices
Index('ix_receiver_beacon_receiver_id_name', 'receiver_id', 'name')
Index('ix_receiver_beacons_receiver_id_name', 'receiver_id', 'name')
def __repr__(self):
return "<ReceiverBeacon %s: %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s>" % (

Wyświetl plik

@ -6,10 +6,10 @@ from .base import Base
class ReceiverCoverage(Base):
__tablename__ = "receiver_coverage"
__tablename__ = "receiver_coverages"
location_mgrs = Column(String(9), primary_key=True)
receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'), primary_key=True)
receiver_id = Column(Integer, ForeignKey('receivers.id', ondelete='SET NULL'), primary_key=True)
date = Column(Date, primary_key=True)
max_signal_quality = Column(Float)

Wyświetl plik

@ -16,5 +16,5 @@ class ReceiverStats(Base):
max_distance = Column(Float)
# Relations
receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'), index=True)
receiver_id = Column(Integer, ForeignKey('receivers.id', ondelete='SET NULL'), index=True)
receiver = relationship('Receiver', foreign_keys=[receiver_id], backref='stats')

Wyświetl plik

@ -5,7 +5,7 @@ from .base import Base
class TakeoffLanding(Base):
__tablename__ = 'takeoff_landing'
__tablename__ = 'takeoff_landings'
id = Column(Integer, primary_key=True)
@ -14,8 +14,8 @@ class TakeoffLanding(Base):
track = Column(Integer)
# Relations
airport_id = Column(Integer, ForeignKey('airport.id', ondelete='SET NULL'), index=True)
airport_id = Column(Integer, ForeignKey('airports.id', ondelete='SET NULL'), index=True)
airport = relationship('Airport', foreign_keys=[airport_id], backref='takeoff_landings')
device_id = Column(Integer, ForeignKey('device.id', ondelete='SET NULL'), index=True)
device_id = Column(Integer, ForeignKey('devices.id', ondelete='SET NULL'), index=True)
device = relationship('Device', foreign_keys=[device_id], backref='takeoff_landings')

Wyświetl plik

@ -57,10 +57,10 @@ class TestDB(unittest.TestCase, XmlTestMixin):
def tearDown(self):
session = self.session
session.execute("DELETE FROM device_info")
session.execute("DELETE FROM receiver")
session.execute("DELETE FROM device")
session.execute("DELETE FROM aircraft_beacon")
session.execute("DELETE FROM device_infos")
session.execute("DELETE FROM receivers")
session.execute("DELETE FROM devices")
session.execute("DELETE FROM aircraft_beacons")
session.commit()
@mock.patch('ogn.backend.liveglidernet.datetime')

Wyświetl plik

@ -33,11 +33,11 @@ class TestDB(unittest.TestCase):
def tearDown(self):
session = self.session
session.execute("DELETE FROM device_info")
session.execute("DELETE FROM device")
session.execute("DELETE FROM receiver")
session.execute("DELETE FROM aircraft_beacon")
session.execute("DELETE FROM receiver_beacon")
session.execute("DELETE FROM device_infos")
session.execute("DELETE FROM devices")
session.execute("DELETE FROM receivers")
session.execute("DELETE FROM aircraft_beacons")
session.execute("DELETE FROM receiver_beacons")
session.commit()
def test_update_devices(self):

Wyświetl plik

@ -41,10 +41,10 @@ class TestDB(unittest.TestCase):
def tearDown(self):
session = self.session
session.execute("DELETE FROM takeoff_landing")
session.execute("DELETE FROM takeoff_landings")
session.execute("DELETE FROM logbook")
session.execute("DELETE FROM device")
session.execute("DELETE FROM airport")
session.execute("DELETE FROM devices")
session.execute("DELETE FROM airports")
session.commit()
def get_logbook_entries(self):

Wyświetl plik

@ -42,10 +42,10 @@ class TestDB(unittest.TestCase):
def tearDown(self):
session = self.session
session.execute("DELETE FROM aircraft_beacon")
session.execute("DELETE FROM receiver_coverage")
session.execute("DELETE FROM device")
session.execute("DELETE FROM receiver")
session.execute("DELETE FROM aircraft_beacons")
session.execute("DELETE FROM receiver_coverages")
session.execute("DELETE FROM devices")
session.execute("DELETE FROM receivers")
session.commit()
def test_update_receiver_coverage(self):

Wyświetl plik

@ -20,14 +20,14 @@ class TestDB(unittest.TestCase):
from ogn.commands.database import init
init()
session.execute("INSERT INTO device(address) VALUES('DDEFF7')")
session.execute("INSERT INTO receiver(name) VALUES('Koenigsdf')")
session.execute("INSERT INTO receiver(name) VALUES('Ohlstadt')")
session.execute("INSERT INTO devices(address) VALUES('DDEFF7')")
session.execute("INSERT INTO receivers(name) VALUES('Koenigsdf')")
session.execute("INSERT INTO receivers(name) VALUES('Ohlstadt')")
def tearDown(self):
session = self.session
session.execute("DELETE FROM aircraft_beacon")
session.execute("DELETE FROM device")
session.execute("DELETE FROM aircraft_beacons")
session.execute("DELETE FROM devices")
session.execute("DELETE FROM device_stats")
session.execute("DELETE FROM receiver_stats")
@ -35,13 +35,13 @@ class TestDB(unittest.TestCase):
def test_update_device_stats(self):
session = self.session
session.execute("INSERT INTO aircraft_beacon(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Koenigsdf',604,'2016-07-02 10:47:12')")
session.execute("INSERT INTO aircraft_beacon(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Koenigsdf',605,'2016-07-02 10:47:32')")
session.execute("INSERT INTO aircraft_beacon(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Koenigsdf',606,'2016-07-02 10:47:52')")
session.execute("INSERT INTO aircraft_beacon(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Ohlstadt',606,'2016-07-02 10:48:12')")
session.execute("INSERT INTO aircraft_beacon(address, receiver_name, altitude, timestamp) VALUES('DDEFF7','Ohlstadt',606,'2016-07-02 10:48:24')")
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')")
session.execute("UPDATE aircraft_beacon SET device_id = d.id, receiver_id = r.id FROM device d, receiver r WHERE aircraft_beacon.address=d.address AND aircraft_beacon.receiver_name=r.name")
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")
update_device_stats(session, date='2016-07-02')
stats = session.query(DeviceStats).all()

Wyświetl plik

@ -3,7 +3,7 @@ import os
from ogn.model import TakeoffLanding
from ogn.collect.takeoff_landing import update_takeoff_landing
from ogn.collect.takeoff_landing import update_takeoff_landings
class TestDB(unittest.TestCase):
@ -20,17 +20,17 @@ class TestDB(unittest.TestCase):
from ogn.commands.database import init
init()
session.execute("INSERT INTO airport(name, location, altitude, style) VALUES('Benediktbeuren','0101000020E6100000D5E76A2BF6C72640D4063A6DA0DB4740',609,4)")
session.execute("INSERT INTO airport(name, location, altitude, style) VALUES('Koenigsdorf','0101000020E610000061E8FED7A6EE26407F20661C10EA4740',600,5)")
session.execute("INSERT INTO airport(name, location, altitude, style) VALUES('Ohlstadt','0101000020E6100000057E678EBF772640A142883E32D44740',655,5)")
session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Benediktbeuren','0101000020E6100000D5E76A2BF6C72640D4063A6DA0DB4740',609,4)")
session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Koenigsdorf','0101000020E610000061E8FED7A6EE26407F20661C10EA4740',600,5)")
session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Ohlstadt','0101000020E6100000057E678EBF772640A142883E32D44740',655,5)")
session.execute("INSERT INTO device(address) VALUES('DDEFF7')")
session.execute("INSERT INTO devices(address) VALUES('DDEFF7')")
def tearDown(self):
session = self.session
session.execute("DELETE FROM takeoff_landing")
session.execute("DELETE FROM aircraft_beacon")
session.execute("DELETE FROM airport")
session.execute("DELETE FROM takeoff_landings")
session.execute("DELETE FROM aircraft_beacons")
session.execute("DELETE FROM airports")
session.commit()
pass
@ -48,61 +48,61 @@ class TestDB(unittest.TestCase):
"""Fill the db with a winch launch where the rope breaks. The algorithm should detect one takeoff and one landing."""
session = self.session
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',604,'2016-07-02 10:47:12',0,0,0,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',605,'2016-07-02 10:47:32',0,0,-0.096520193,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:47:52',0,0,-0.096520193,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:48:12',0,0,-0.096520193,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000001B2FDD2406F12640E53C762AF3E94740',606,'2016-07-02 10:48:24',284,51.85598112,0.299720599,0.1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000F594AFDEBBF02640623583E5F5E94740',610,'2016-07-02 10:48:26',282,88.89596764,4.729489459,-0.2)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000001C0DE02D90F026401564F188F7E94740',619,'2016-07-02 10:48:27',281,94.45196562,10.66294133,-0.3)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000ABF1D24D62F02640E12D90A0F8E94740',632,'2016-07-02 10:48:28',278,88.89596764,15.59055118,-0.7)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000069FD40CC38F02640C7925F2CF9E94740',650,'2016-07-02 10:48:29',273,83.33996966,18.90779782,-0.7)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000002709AF4A0FF02640C7925F2CF9E94740',670,'2016-07-02 10:48:30',272,79.63597101,20.72136144,-0.3)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000007AA85AF8E7EF2640C7925F2CF9E94740',691,'2016-07-02 10:48:31',269,79.63597101,21.02108204,-0.4)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000068DB43D5C2EF2640E12D90A0F8E94740',712,'2016-07-02 10:48:32',267,74.07997303,21.62560325,-0.5)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000EDA16AE19FEF2640FBC8C014F8E94740',728,'2016-07-02 10:48:33',266,68.52397506,12.36982474,-0.1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000000AFCCE1C7FEF26401564F188F7E94740',733,'2016-07-02 10:48:34',266,68.52397506,2.21488443,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000275633585EEF26402FFF21FDF6E94740',731,'2016-07-02 10:48:35',267,68.52397506,-3.916687833,0.2)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000015891C3539EF26402FFF21FDF6E94740',726,'2016-07-02 10:48:36',270,74.07997303,-6.329692659,1.1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000E63FA4DFBEEE264078C1CDCFFAE94740',712,'2016-07-02 10:48:39',280,88.89596764,-2.611125222,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000004FF9EABD0BEE2640448B6CE7FBE94740',706,'2016-07-02 10:48:43',256,90.74796697,-0.198120396,-2.5)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000046B921B3A0ED264003E78C28EDE94740',706,'2016-07-02 10:48:46',218,92.59996629,-0.198120396,-1.6)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000005C58F3177ED2640900C4C81DFE94740',703,'2016-07-02 10:48:48',202,96.30396495,-1.402082804,-1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000211FF46C56ED26402650D7EDC6E94740',702,'2016-07-02 10:48:51',188,100.0079636,0.502921006,-1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000806DEA295FED2640347D898BB6E94740',704,'2016-07-02 10:48:53',166,100.0079636,0.802641605,-2)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000337D898BB6ED26401383C0CAA1E94740',703,'2016-07-02 10:48:56',133,101.8599629,-1.803403607,-1.7)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000000C05593CE2ED2640FDF675E09CE94740',700,'2016-07-02 10:48:57',123,103.7119622,-2.611125222,-1.4)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000F0CCF1F778EE26409FA87F2394E94740',693,'2016-07-02 10:49:00',105,111.1199596,-2.809245618,-0.6)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000C9073D9B55EF2640BD5296218EE94740',687,'2016-07-02 10:49:04',97,112.9719589,-1.605283211,-0.1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000006F8104C5EF26400C24287E8CE94740',682,'2016-07-02 10:49:06',97,114.8239582,-2.407924816,-0.2)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A0648535A8F02640F597DD9387E94740',676,'2016-07-02 10:49:10',97,118.5279569,-1.402082804,0.1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000D70FC48C03F22640621386EE7FE94740',672,'2016-07-02 10:49:16',97,116.6759575,-1.000762002,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A72C431CEBF22640CB7F48BF7DE94740',666,'2016-07-02 10:49:20',84,114.8239582,-1.605283211,-1.5)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000BFCAA145B6F32640BD5296218EE94740',662,'2016-07-02 10:49:24',49,111.1199596,-1.203962408,-1.5)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000074DA40A70DF4264077E09C11A5E94740',659,'2016-07-02 10:49:27',23,107.4159609,-1.402082804,-1.4)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009AE3EFF11CF42640347D898BB6E94740',656,'2016-07-02 10:49:29',4,101.8599629,-0.797561595,-1.8)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000074DA40A70DF426402650D7EDC6E94740',654,'2016-07-02 10:49:31',347,101.8599629,-1.706883414,-1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000156A4DF38EF3264086EE7F6DEAE94740',649,'2016-07-02 10:49:36',312,98.15596427,-1.503683007,-1.4)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000FAEDEBC039F32640E53C762AF3E94740',644,'2016-07-02 10:49:38',295,96.30396495,-3.012446025,-1.2)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000B04A0F30E0F22640FBC8C014F8E94740',635,'2016-07-02 10:49:40',284,94.45196562,-5.125730251,-0.7)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000F38B25BF58F22640448B6CE7FBE94740',623,'2016-07-02 10:49:43',279,92.59996629,-2.809245618,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A5E8482EFFF12640DC1EAA16FEE94740',617,'2016-07-02 10:49:45',279,88.89596764,-3.312166624,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009F17012859F12640F0AAF40003EA4740',607,'2016-07-02 10:49:49',279,81.48797034,-1.300482601,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000004B5658830AF12640873E323005EA4740',607,'2016-07-02 10:49:51',278,74.07997303,-0.294640589,-0.1)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A0648535A8F0264006373FEB07EA4740',605,'2016-07-02 10:49:54',280,61.11597775,-0.096520193,0.5)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000C74B378941F02640E88C28ED0DEA4740',604,'2016-07-02 10:49:58',292,48.15198247,0.101600203,0.4)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000001B5A643BDFEF264045DB1EAA16EA4740',604,'2016-07-02 10:50:04',302,25.92799056,0.203200406,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000042D2948AB3EF264074029A081BEA4740',604,'2016-07-02 10:50:10',300,5.555997978,0.101600203,0)")
session.execute("INSERT INTO aircraft_beacon(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000013AB192CAFEF264074029A081BEA4740',603,'2016-07-02 10:50:16',0,0,-0.096520193,0)")
session.execute("UPDATE aircraft_beacon SET device_id = d.id FROM device d WHERE d.address='DDEFF7'")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',604,'2016-07-02 10:47:12',0,0,0,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',605,'2016-07-02 10:47:32',0,0,-0.096520193,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:47:52',0,0,-0.096520193,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:48:12',0,0,-0.096520193,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000001B2FDD2406F12640E53C762AF3E94740',606,'2016-07-02 10:48:24',284,51.85598112,0.299720599,0.1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000F594AFDEBBF02640623583E5F5E94740',610,'2016-07-02 10:48:26',282,88.89596764,4.729489459,-0.2)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000001C0DE02D90F026401564F188F7E94740',619,'2016-07-02 10:48:27',281,94.45196562,10.66294133,-0.3)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000ABF1D24D62F02640E12D90A0F8E94740',632,'2016-07-02 10:48:28',278,88.89596764,15.59055118,-0.7)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000069FD40CC38F02640C7925F2CF9E94740',650,'2016-07-02 10:48:29',273,83.33996966,18.90779782,-0.7)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000002709AF4A0FF02640C7925F2CF9E94740',670,'2016-07-02 10:48:30',272,79.63597101,20.72136144,-0.3)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000007AA85AF8E7EF2640C7925F2CF9E94740',691,'2016-07-02 10:48:31',269,79.63597101,21.02108204,-0.4)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000068DB43D5C2EF2640E12D90A0F8E94740',712,'2016-07-02 10:48:32',267,74.07997303,21.62560325,-0.5)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000EDA16AE19FEF2640FBC8C014F8E94740',728,'2016-07-02 10:48:33',266,68.52397506,12.36982474,-0.1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000000AFCCE1C7FEF26401564F188F7E94740',733,'2016-07-02 10:48:34',266,68.52397506,2.21488443,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000275633585EEF26402FFF21FDF6E94740',731,'2016-07-02 10:48:35',267,68.52397506,-3.916687833,0.2)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000015891C3539EF26402FFF21FDF6E94740',726,'2016-07-02 10:48:36',270,74.07997303,-6.329692659,1.1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000E63FA4DFBEEE264078C1CDCFFAE94740',712,'2016-07-02 10:48:39',280,88.89596764,-2.611125222,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000004FF9EABD0BEE2640448B6CE7FBE94740',706,'2016-07-02 10:48:43',256,90.74796697,-0.198120396,-2.5)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000046B921B3A0ED264003E78C28EDE94740',706,'2016-07-02 10:48:46',218,92.59996629,-0.198120396,-1.6)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000005C58F3177ED2640900C4C81DFE94740',703,'2016-07-02 10:48:48',202,96.30396495,-1.402082804,-1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000211FF46C56ED26402650D7EDC6E94740',702,'2016-07-02 10:48:51',188,100.0079636,0.502921006,-1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000806DEA295FED2640347D898BB6E94740',704,'2016-07-02 10:48:53',166,100.0079636,0.802641605,-2)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000337D898BB6ED26401383C0CAA1E94740',703,'2016-07-02 10:48:56',133,101.8599629,-1.803403607,-1.7)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000000C05593CE2ED2640FDF675E09CE94740',700,'2016-07-02 10:48:57',123,103.7119622,-2.611125222,-1.4)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000F0CCF1F778EE26409FA87F2394E94740',693,'2016-07-02 10:49:00',105,111.1199596,-2.809245618,-0.6)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000C9073D9B55EF2640BD5296218EE94740',687,'2016-07-02 10:49:04',97,112.9719589,-1.605283211,-0.1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000006F8104C5EF26400C24287E8CE94740',682,'2016-07-02 10:49:06',97,114.8239582,-2.407924816,-0.2)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A0648535A8F02640F597DD9387E94740',676,'2016-07-02 10:49:10',97,118.5279569,-1.402082804,0.1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000D70FC48C03F22640621386EE7FE94740',672,'2016-07-02 10:49:16',97,116.6759575,-1.000762002,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A72C431CEBF22640CB7F48BF7DE94740',666,'2016-07-02 10:49:20',84,114.8239582,-1.605283211,-1.5)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000BFCAA145B6F32640BD5296218EE94740',662,'2016-07-02 10:49:24',49,111.1199596,-1.203962408,-1.5)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000074DA40A70DF4264077E09C11A5E94740',659,'2016-07-02 10:49:27',23,107.4159609,-1.402082804,-1.4)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009AE3EFF11CF42640347D898BB6E94740',656,'2016-07-02 10:49:29',4,101.8599629,-0.797561595,-1.8)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000074DA40A70DF426402650D7EDC6E94740',654,'2016-07-02 10:49:31',347,101.8599629,-1.706883414,-1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000156A4DF38EF3264086EE7F6DEAE94740',649,'2016-07-02 10:49:36',312,98.15596427,-1.503683007,-1.4)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000FAEDEBC039F32640E53C762AF3E94740',644,'2016-07-02 10:49:38',295,96.30396495,-3.012446025,-1.2)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000B04A0F30E0F22640FBC8C014F8E94740',635,'2016-07-02 10:49:40',284,94.45196562,-5.125730251,-0.7)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000F38B25BF58F22640448B6CE7FBE94740',623,'2016-07-02 10:49:43',279,92.59996629,-2.809245618,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A5E8482EFFF12640DC1EAA16FEE94740',617,'2016-07-02 10:49:45',279,88.89596764,-3.312166624,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000009F17012859F12640F0AAF40003EA4740',607,'2016-07-02 10:49:49',279,81.48797034,-1.300482601,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000004B5658830AF12640873E323005EA4740',607,'2016-07-02 10:49:51',278,74.07997303,-0.294640589,-0.1)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000A0648535A8F0264006373FEB07EA4740',605,'2016-07-02 10:49:54',280,61.11597775,-0.096520193,0.5)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E6100000C74B378941F02640E88C28ED0DEA4740',604,'2016-07-02 10:49:58',292,48.15198247,0.101600203,0.4)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E61000001B5A643BDFEF264045DB1EAA16EA4740',604,'2016-07-02 10:50:04',302,25.92799056,0.203200406,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000042D2948AB3EF264074029A081BEA4740',604,'2016-07-02 10:50:10',300,5.555997978,0.101600203,0)")
session.execute("INSERT INTO aircraft_beacons(address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('DDEFF7','0101000020E610000013AB192CAFEF264074029A081BEA4740',603,'2016-07-02 10:50:16',0,0,-0.096520193,0)")
session.execute("UPDATE aircraft_beacons SET device_id = d.id FROM devices d WHERE d.address='DDEFF7'")
session.commit()
# find the takeoff and the landing
update_takeoff_landing(session)
update_takeoff_landings(session)
self.assertEqual(self.count_takeoff_and_landings(), 2)
# we should not find the takeoff and the landing again
update_takeoff_landing(session)
update_takeoff_landings(session)
self.assertEqual(self.count_takeoff_and_landings(), 2)

Wyświetl plik

@ -21,8 +21,8 @@ class TestDB(unittest.TestCase):
def tearDown(self):
session = self.session
session.execute("DELETE FROM aircraft_beacon")
session.execute("DELETE FROM receiver_beacon")
session.execute("DELETE FROM aircraft_beacons")
session.execute("DELETE FROM receiver_beacons")
session.commit()
def test_convert_logfile(self):