kopia lustrzana https://github.com/glidernet/ogn-python
Change configuration management / fixed tests
rodzic
7c416b601a
commit
88a807406b
|
@ -1,7 +1,7 @@
|
|||
language: python
|
||||
|
||||
env:
|
||||
- OGN_CONFIG_MODULE='config.test'
|
||||
- OGN_CONFIG_MODULE='config/test.py'
|
||||
|
||||
python:
|
||||
- 3.5
|
||||
|
@ -20,9 +20,9 @@ before_script:
|
|||
- psql -U postgres -c 'CREATE EXTENSION postgis;'
|
||||
|
||||
script:
|
||||
- nosetests --with-coverage --cover-package=ogn
|
||||
- nosetests --with-coverage --cover-package=ogn_python
|
||||
- pip install . --upgrade
|
||||
- python -c 'import ogn'
|
||||
- python -c 'import ogn_python'
|
||||
|
||||
after_success:
|
||||
- coveralls
|
||||
|
|
|
@ -8,7 +8,10 @@ from ogn_python.flask_celery import make_celery
|
|||
|
||||
# Initialize Flask
|
||||
app = Flask(__name__)
|
||||
app.config.from_object('config.default')
|
||||
|
||||
# Load the configuration
|
||||
#app.config.from_object('config.default')
|
||||
app.config.from_envvar('OGN_CONFIG_MODULE')
|
||||
|
||||
# Bootstrap
|
||||
bootstrap = Bootstrap(app)
|
||||
|
|
|
@ -9,6 +9,22 @@ from ogn_python.utils import get_ddb, get_flarmnet
|
|||
from ogn_python import app
|
||||
|
||||
|
||||
def upsert(session, model, rows, update_cols):
|
||||
"""Insert rows in model. On conflicting update columns if new value IS NOT NULL."""
|
||||
|
||||
table = model.__table__
|
||||
|
||||
stmt = insert(table).values(rows)
|
||||
|
||||
on_conflict_stmt = stmt.on_conflict_do_update(
|
||||
index_elements=table.primary_key.columns,
|
||||
set_={k: case([(getattr(stmt.excluded, k) != null(), getattr(stmt.excluded, k))], else_=getattr(model, k)) for k in update_cols},
|
||||
)
|
||||
|
||||
# print(compile_query(on_conflict_stmt))
|
||||
session.execute(on_conflict_stmt)
|
||||
|
||||
|
||||
def update_device_infos(session, address_origin, path=None):
|
||||
if address_origin == DeviceInfoOrigin.flarmnet:
|
||||
device_infos = get_flarmnet(fln_file=path)
|
||||
|
|
|
@ -7,6 +7,8 @@ from sqlalchemy.sql import func
|
|||
from ogn_python.collect.database import update_device_infos, update_country_code
|
||||
from ogn_python.model import *
|
||||
from ogn_python.utils import get_airports, get_days
|
||||
|
||||
from ogn_python import app
|
||||
from ogn_python import db
|
||||
|
||||
user_cli = AppGroup('database')
|
||||
|
@ -34,11 +36,8 @@ def get_database_days(start, end):
|
|||
|
||||
@user_cli.command('info')
|
||||
def info():
|
||||
import importlib
|
||||
import os
|
||||
config = importlib.import_module(os.environ['OGN_CONFIG_MODULE'])
|
||||
print(config)
|
||||
print(config.SQLALCHEMY_DATABASE_URI)
|
||||
print(app.config)
|
||||
print(app.config['SQLALCHEMY_DATABASE_URI'])
|
||||
|
||||
|
||||
@user_cli.command('init')
|
||||
|
|
|
@ -2,10 +2,5 @@ SQLALCHEMY_DATABASE_URI = 'postgresql://postgres@localhost:5432/ogn_test'
|
|||
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
||||
|
||||
# Celery stuff
|
||||
broker_url = 'redis://localhost:6379/0'
|
||||
result_backend = 'redis://localhost:6379/0'
|
||||
|
||||
|
||||
beat_schedule = {}
|
||||
|
||||
timezone = 'UTC'
|
||||
CELERY_BROKER_URL = 'redis://localhost:6379/0'
|
||||
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
|
|
@ -1,75 +1,57 @@
|
|||
import json
|
||||
from datetime import datetime
|
||||
|
||||
import unittest
|
||||
from unittest import mock
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
from xmlunittest import XmlTestMixin
|
||||
|
||||
from ogn_python.model import AircraftBeacon, Receiver, Device, DeviceInfo
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import AircraftBeacon, AircraftType, Receiver, Device, DeviceInfo
|
||||
|
||||
from ogn_python.backend.liveglidernet import rec, lxml
|
||||
from ogn_python.backend.ognrange import stations2_filtered_pl
|
||||
from ogn_python.model.aircraft_type import AircraftType
|
||||
|
||||
|
||||
class TestDB(unittest.TestCase, XmlTestMixin):
|
||||
session = None
|
||||
engine = None
|
||||
app = None
|
||||
|
||||
class TestDB(TestBaseDB, XmlTestMixin):
|
||||
def setUp(self):
|
||||
os.environ['OGN_CONFIG_MODULE'] = 'config.test'
|
||||
from ogn_python.commands.dbutils import engine, session
|
||||
self.session = session
|
||||
self.engine = engine
|
||||
|
||||
from ogn_python.commands.database import init
|
||||
init()
|
||||
super().setUp()
|
||||
|
||||
# Prepare Beacons
|
||||
self.r01 = Receiver(name='Koenigsdf', location_wkt='0101000020E610000061E8FED7A6EE26407F20661C10EA4740', lastseen='2017-12-20 10:00:00', altitude=601, version='0.2.5', platform='ARM')
|
||||
self.r02 = Receiver(name='Bene', location_wkt='0101000020E6100000D5E76A2BF6C72640D4063A6DA0DB4740', lastseen='2017-12-20 09:45:00', altitude=609, version='0.2.7', platform='x64')
|
||||
self.r03 = Receiver(name='Ohlstadt', location_wkt='0101000020E6100000057E678EBF772640A142883E32D44740', lastseen='2017-12-20 10:05:00', altitude=655, version='0.2.6', platform='ARM')
|
||||
session.add(self.r01)
|
||||
session.add(self.r02)
|
||||
session.add(self.r03)
|
||||
session.commit()
|
||||
db.session.add(self.r01)
|
||||
db.session.add(self.r02)
|
||||
db.session.add(self.r03)
|
||||
db.session.commit()
|
||||
|
||||
self.d01 = Device(address='DD4711', lastseen='2017-12-20 10:00:02')
|
||||
self.d02 = Device(address='DD0815', lastseen='2017-12-20 09:56:00')
|
||||
session.add(self.d01)
|
||||
session.add(self.d02)
|
||||
session.commit()
|
||||
db.session.add(self.d01)
|
||||
db.session.add(self.d02)
|
||||
db.session.commit()
|
||||
|
||||
self.di01 = DeviceInfo(registration='D-4711', competition='Hi', tracked=True, identified=True, device_id=self.d01.id)
|
||||
session.add(self.di01)
|
||||
session.commit()
|
||||
db.session.add(self.di01)
|
||||
db.session.commit()
|
||||
|
||||
self.ab11 = AircraftBeacon(name='FLRDD4711', receiver_name='Koenigsdf', location_wkt='0101000020E6100000211FF46C56ED26402650D7EDC6E94740', aircraft_type=AircraftType.glider_or_motor_glider, timestamp='2017-12-20 10:00:01', track=105, ground_speed=57, climb_rate=-0.5, device_id=self.d01.id)
|
||||
self.ab12 = AircraftBeacon(name='FLRDD4711', receiver_name='Koenigsdf', location_wkt='0101000020E6100000806DEA295FED2640347D898BB6E94740', aircraft_type=AircraftType.glider_or_motor_glider, timestamp='2017-12-20 10:00:02', track=123, ground_speed=55, climb_rate=-0.4, altitude=209, device_id=self.d01.id)
|
||||
self.ab21 = AircraftBeacon(name='FLRDD0815', receiver_name='Koenigsdf', location_wkt='0101000020E6100000F38B25BF58F22640448B6CE7FBE94740', aircraft_type=AircraftType.powered_aircraft, timestamp='2017-12-20 09:54:30', track=280, ground_speed=80, climb_rate=-2.9, device_id=self.d02.id)
|
||||
self.ab22 = AircraftBeacon(name='FLRDD0815', receiver_name='Bene', location_wkt='0101000020E6100000A5E8482EFFF12640DC1EAA16FEE94740', aircraft_type=AircraftType.powered_aircraft, timestamp='2017-12-20 09:56:00', track=270, ground_speed=77, climb_rate=-1.5, altitude=543, device_id=self.d02.id)
|
||||
session.add(self.ab11)
|
||||
session.add(self.ab12)
|
||||
session.add(self.ab21)
|
||||
session.add(self.ab22)
|
||||
session.commit()
|
||||
db.session.add(self.ab11)
|
||||
db.session.add(self.ab12)
|
||||
db.session.add(self.ab21)
|
||||
db.session.add(self.ab22)
|
||||
db.session.commit()
|
||||
|
||||
def tearDown(self):
|
||||
session = self.session
|
||||
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')
|
||||
@mock.patch('ogn_python.backend.liveglidernet.datetime')
|
||||
def test_rec(self, datetime_mock):
|
||||
session = self.session
|
||||
|
||||
datetime_mock.utcnow.return_value = datetime(2017, 12, 20, 10, 0)
|
||||
|
||||
data = rec(session).encode(encoding='utf-8')
|
||||
data = rec(db.session).encode(encoding='utf-8')
|
||||
|
||||
# Check the document
|
||||
root = self.assertXmlDocument(data)
|
||||
|
@ -88,14 +70,12 @@ class TestDB(unittest.TestCase, XmlTestMixin):
|
|||
|
||||
self.assertXmlEquivalentOutputs(data, expected)
|
||||
|
||||
@mock.patch('ogn.backend.liveglidernet.utc_to_local', side_effect=lambda x: x)
|
||||
@mock.patch('ogn.backend.liveglidernet.datetime')
|
||||
@mock.patch('ogn_python.backend.liveglidernet.utc_to_local', side_effect=lambda x: x)
|
||||
@mock.patch('ogn_python.backend.liveglidernet.datetime')
|
||||
def test_lxml(self, datetime_mock, utc_to_local_mock):
|
||||
session = self.session
|
||||
|
||||
datetime_mock.utcnow.return_value = datetime(2017, 12, 20, 10, 0, 5)
|
||||
|
||||
data = lxml(session).encode(encoding='utf-8')
|
||||
data = lxml(db.session).encode(encoding='utf-8')
|
||||
|
||||
# Check the complete document
|
||||
expected = """<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -107,15 +87,11 @@ class TestDB(unittest.TestCase, XmlTestMixin):
|
|||
|
||||
self.assertXmlEquivalentOutputs(data, expected)
|
||||
|
||||
@mock.patch('ogn.backend.ognrange.datetime')
|
||||
@mock.patch('ogn_python.backend.ognrange.datetime')
|
||||
def test_stations2_filtered_pl(self, datetime_mock):
|
||||
session = self.session
|
||||
|
||||
datetime_mock.utcnow.return_value = datetime(2017, 12, 20, 10, 0)
|
||||
|
||||
import json
|
||||
|
||||
result = stations2_filtered_pl(session)
|
||||
result = stations2_filtered_pl(db.session)
|
||||
|
||||
data = json.loads(result)
|
||||
|
||||
|
|
|
@ -1,36 +1,30 @@
|
|||
import unittest
|
||||
import os
|
||||
|
||||
os.environ['OGN_CONFIG_MODULE'] = 'config.test'
|
||||
os.environ['OGN_CONFIG_MODULE'] = 'config/test.py'
|
||||
|
||||
from ogn_python import db # noqa: E402
|
||||
|
||||
|
||||
class TestBaseDB(unittest.TestCase):
|
||||
session = None
|
||||
engine = None
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
from ogn_python.commands.dbutils import engine, session
|
||||
cls.session = session
|
||||
cls.engine = engine
|
||||
|
||||
from ogn_python.commands.database import drop
|
||||
drop(sure='y')
|
||||
|
||||
from ogn_python.commands.database import init
|
||||
init()
|
||||
db.session.execute('CREATE EXTENSION IF NOT EXISTS postgis;')
|
||||
db.session.commit()
|
||||
db.drop_all()
|
||||
db.create_all()
|
||||
|
||||
def setUp(self):
|
||||
self.session.execute("""
|
||||
pass
|
||||
|
||||
def tearDown(self):
|
||||
db.session.execute("""
|
||||
DELETE FROM aircraft_beacons;
|
||||
DELETE FROM receiver_beacons;
|
||||
DELETE FROM takeoff_landings;
|
||||
DELETE FROM logbook;
|
||||
""")
|
||||
|
||||
def tearDown(self):
|
||||
self.session.rollback()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
@ -1,53 +1,29 @@
|
|||
import unittest
|
||||
|
||||
from tests.base import TestBaseDB
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import AircraftBeacon, ReceiverBeacon, Device, Receiver
|
||||
from ogn_python.collect.database import add_missing_devices, add_missing_receivers, upsert
|
||||
from ogn_python.model import AircraftBeacon
|
||||
from ogn_python.collect.database import upsert
|
||||
|
||||
|
||||
class TestDatabase(TestBaseDB):
|
||||
def test_update_devices(self):
|
||||
session = self.session
|
||||
|
||||
ab01 = AircraftBeacon(name='FLRDD4711', receiver_name='Koenigsdf', address='DD4711', timestamp='2017-12-10 10:00:00')
|
||||
rb01 = ReceiverBeacon(name='Bene', receiver_name='GLIDERN1', timestamp='2017-12-10 09:59:50')
|
||||
d01 = Device(address='DD4711')
|
||||
r01 = Receiver(name='Koenigsdf')
|
||||
session.bulk_save_objects([ab01, rb01, d01, r01])
|
||||
|
||||
add_missing_devices(session)
|
||||
add_missing_receivers(session)
|
||||
|
||||
aircraft_beacons = session.query(AircraftBeacon).all()
|
||||
self.assertEqual(len(aircraft_beacons), 1)
|
||||
aircraft_beacon = aircraft_beacons[0]
|
||||
self.assertEqual(aircraft_beacon.device.address, 'DD4711')
|
||||
self.assertEqual(aircraft_beacon.receiver.name, 'Koenigsdf')
|
||||
|
||||
receiver_beacons = session.query(ReceiverBeacon).all()
|
||||
self.assertEqual(len(receiver_beacons), 1)
|
||||
receiver_beacon = receiver_beacons[0]
|
||||
self.assertEqual(receiver_beacon.receiver.name, 'Bene')
|
||||
|
||||
@unittest.skip('wip')
|
||||
def test_insert_duplicate_beacons(self):
|
||||
session = self.session
|
||||
|
||||
row1 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:51:00', 'ground_speed': None}
|
||||
row2 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:52:00', 'ground_speed': 0}
|
||||
row3 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:53:00', 'ground_speed': 1}
|
||||
row4 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:54:00', 'ground_speed': None}
|
||||
|
||||
upsert(session=session, model=AircraftBeacon, rows=[row1, row2, row3, row4], update_cols=['ground_speed'])
|
||||
upsert(session=db.session, model=AircraftBeacon, rows=[row1, row2, row3, row4], update_cols=['ground_speed'])
|
||||
|
||||
row5 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:51:00', 'ground_speed': 2}
|
||||
row6 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:52:00', 'ground_speed': 3}
|
||||
row7 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:53:00', 'ground_speed': None}
|
||||
row8 = {'name': 'FLRDD0815', 'receiver_name': 'Koenigsdf', 'timestamp': '2019-01-26 11:54:00', 'ground_speed': None}
|
||||
|
||||
upsert(session=session, model=AircraftBeacon, rows=[row5, row6, row7, row8], update_cols=['ground_speed'])
|
||||
upsert(session=db.session, model=AircraftBeacon, rows=[row5, row6, row7, row8], update_cols=['ground_speed'])
|
||||
|
||||
result = session.query(AircraftBeacon).order_by(AircraftBeacon.timestamp).all()
|
||||
result = db.session.query(AircraftBeacon).order_by(AircraftBeacon.timestamp).all()
|
||||
self.assertEqual(result[0].ground_speed, 2)
|
||||
self.assertEqual(result[1].ground_speed, 3)
|
||||
self.assertEqual(result[2].ground_speed, 1)
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
import datetime
|
||||
import unittest
|
||||
|
||||
from tests.base import TestBaseDB
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import Logbook, Airport, Device, TakeoffLanding
|
||||
from ogn_python.collect.logbook import update_logbook
|
||||
from ogn_python.collect.logbook import update_entries
|
||||
|
||||
|
||||
class TestLogbook(TestBaseDB):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
session = self.session
|
||||
|
||||
# Create basic data and insert
|
||||
self.dd0815 = Device(address='DD0815')
|
||||
self.dd4711 = Device(address='DD4711')
|
||||
|
@ -18,12 +16,12 @@ class TestLogbook(TestBaseDB):
|
|||
self.koenigsdorf = Airport(name='Koenigsdorf')
|
||||
self.ohlstadt = Airport(name='Ohlstadt')
|
||||
|
||||
session.add(self.dd0815)
|
||||
session.add(self.dd4711)
|
||||
session.add(self.koenigsdorf)
|
||||
session.add(self.ohlstadt)
|
||||
db.session.add(self.dd0815)
|
||||
db.session.add(self.dd4711)
|
||||
db.session.add(self.koenigsdorf)
|
||||
db.session.add(self.ohlstadt)
|
||||
|
||||
session.commit()
|
||||
db.session.commit()
|
||||
|
||||
# Prepare takeoff and landings
|
||||
self.takeoff_koenigsdorf_dd0815 = TakeoffLanding(is_takeoff=True, timestamp='2016-06-01 10:00:00', airport_id=self.koenigsdorf.id, device_id=self.dd0815.id)
|
||||
|
@ -32,83 +30,73 @@ class TestLogbook(TestBaseDB):
|
|||
self.takeoff_ohlstadt_dd4711 = TakeoffLanding(is_takeoff=True, timestamp='2016-06-01 10:00:00', airport_id=self.ohlstadt.id, device_id=self.dd4711.id)
|
||||
|
||||
def get_logbook_entries(self):
|
||||
session = self.session
|
||||
return session.query(Logbook).order_by(Logbook.takeoff_airport_id, Logbook.reftime).all()
|
||||
return db.session.query(Logbook).order_by(Logbook.takeoff_airport_id, Logbook.reftime).all()
|
||||
|
||||
def test_single_takeoff(self):
|
||||
session = self.session
|
||||
db.session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[0].landing_airport_id, None)
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries2 = self.get_logbook_entries()
|
||||
self.assertEqual(entries, entries2)
|
||||
|
||||
def test_single_landing(self):
|
||||
session = self.session
|
||||
db.session.add(self.landing_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.landing_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, None)
|
||||
self.assertEqual(entries[0].landing_airport_id, self.koenigsdorf.id)
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries2 = self.get_logbook_entries()
|
||||
self.assertEqual(entries, entries2)
|
||||
|
||||
def test_different_takeoffs(self):
|
||||
session = self.session
|
||||
db.session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
db.session.add(self.takeoff_ohlstadt_dd4711)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
session.add(self.takeoff_ohlstadt_dd4711)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 2)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[1].takeoff_airport_id, self.ohlstadt.id)
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries2 = self.get_logbook_entries()
|
||||
self.assertEqual(entries, entries2)
|
||||
|
||||
def test_takeoff_and_landing(self):
|
||||
session = self.session
|
||||
db.session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
db.session.add(self.landing_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
session.add(self.landing_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[0].landing_airport_id, self.koenigsdorf.id)
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries2 = self.get_logbook_entries()
|
||||
self.assertEqual(entries, entries2)
|
||||
|
||||
def test_takeoff_and_landing_on_different_days(self):
|
||||
session = self.session
|
||||
db.session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
db.session.add(self.landing_koenigsdorf_dd0815_later)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
session.add(self.landing_koenigsdorf_dd0815_later)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 2))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 2)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
|
@ -116,63 +104,59 @@ class TestLogbook(TestBaseDB):
|
|||
self.assertEqual(entries[1].landing_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[1].reftime, self.landing_koenigsdorf_dd0815_later.timestamp)
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries2 = self.get_logbook_entries()
|
||||
self.assertEqual(entries, entries2)
|
||||
|
||||
def test_update(self):
|
||||
session = self.session
|
||||
db.session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
|
||||
session.add(self.landing_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
db.session.add(self.landing_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[0].landing_airport_id, self.koenigsdorf.id)
|
||||
|
||||
session.add(self.takeoff_ohlstadt_dd4711)
|
||||
session.commit()
|
||||
db.session.add(self.takeoff_ohlstadt_dd4711)
|
||||
db.session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 2)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[1].takeoff_airport_id, self.ohlstadt.id)
|
||||
|
||||
def test_update_wrong_order(self):
|
||||
session = self.session
|
||||
db.session.add(self.landing_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
session.add(self.landing_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, None)
|
||||
self.assertEqual(entries[0].landing_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[0].reftime, self.landing_koenigsdorf_dd0815.timestamp)
|
||||
|
||||
session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
session.commit()
|
||||
db.session.add(self.takeoff_koenigsdorf_dd0815)
|
||||
db.session.commit()
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries = self.get_logbook_entries()
|
||||
self.assertEqual(len(entries), 1)
|
||||
self.assertEqual(entries[0].takeoff_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[0].landing_airport_id, self.koenigsdorf.id)
|
||||
self.assertEqual(entries[0].reftime, self.takeoff_koenigsdorf_dd0815.timestamp)
|
||||
|
||||
update_logbook(session)
|
||||
update_entries(session=db.session, date=datetime.date(2016, 6, 1))
|
||||
entries2 = self.get_logbook_entries()
|
||||
self.assertEqual(entries, entries2)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import unittest
|
||||
from datetime import date
|
||||
import unittest
|
||||
|
||||
from tests.base import TestBaseDB
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import AircraftBeacon, Receiver, ReceiverCoverage, Device
|
||||
from ogn_python.collect.ognrange import create_receiver_coverage
|
||||
|
@ -10,7 +10,6 @@ from ogn_python.collect.ognrange import create_receiver_coverage
|
|||
class TestOGNrange(TestBaseDB):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
session = self.session
|
||||
|
||||
# Create basic data and insert
|
||||
self.dd0815 = Device(address='DD0815')
|
||||
|
@ -19,26 +18,24 @@ class TestOGNrange(TestBaseDB):
|
|||
self.r01 = Receiver(name='Koenigsdf')
|
||||
self.r02 = Receiver(name='Bene')
|
||||
|
||||
session.add(self.dd0815)
|
||||
session.add(self.dd4711)
|
||||
session.add(self.r01)
|
||||
session.add(self.r02)
|
||||
db.session.add(self.dd0815)
|
||||
db.session.add(self.dd4711)
|
||||
db.session.add(self.r01)
|
||||
db.session.add(self.r02)
|
||||
|
||||
session.commit()
|
||||
db.session.commit()
|
||||
|
||||
# Create beacons and insert
|
||||
self.ab01 = AircraftBeacon(name='FLRDD0815', receiver_name='Koenigsdf', device_id=self.dd0815.id, receiver_id=self.r01.id, timestamp='2017-12-10 10:00:00', location_mgrs_short='89ABC1267', altitude=800)
|
||||
self.ab02 = AircraftBeacon(name='FLRDD0815', receiver_name='Koenigsdf', device_id=self.dd0815.id, receiver_id=self.r01.id, timestamp='2017-12-10 10:00:01', location_mgrs_short='89ABC1267', altitude=850)
|
||||
session.add(self.ab01)
|
||||
session.add(self.ab02)
|
||||
session.commit()
|
||||
db.session.add(self.ab01)
|
||||
db.session.add(self.ab02)
|
||||
db.session.commit()
|
||||
|
||||
def test_update_receiver_coverage(self):
|
||||
session = self.session
|
||||
create_receiver_coverage(db.session, date=date(2017, 12, 10))
|
||||
|
||||
create_receiver_coverage(session, date=date(2017, 12, 10))
|
||||
|
||||
coverages = session.query(ReceiverCoverage).all()
|
||||
coverages = db.session.query(ReceiverCoverage).all()
|
||||
self.assertEqual(len(coverages), 1)
|
||||
coverage = coverages[0]
|
||||
self.assertEqual(coverage.location_mgrs_short, '89ABC1267')
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import unittest
|
||||
from datetime import datetime, date
|
||||
import unittest
|
||||
|
||||
from tests.base import TestBaseDB
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import AircraftBeacon, ReceiverBeacon, Receiver, Device, DeviceStats
|
||||
|
||||
|
@ -11,7 +11,6 @@ from ogn_python.collect.stats import create_device_stats
|
|||
class TestStats(TestBaseDB):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
session = self.session
|
||||
|
||||
# Prepare Beacons
|
||||
self.ab01 = AircraftBeacon(name='FLRDD4711', receiver_name='Koenigsdf', timestamp='2017-12-10 10:00:01')
|
||||
|
@ -30,23 +29,21 @@ class TestStats(TestBaseDB):
|
|||
|
||||
self.d01 = Device(address='DD4711')
|
||||
|
||||
session.add(self.r01)
|
||||
session.add(self.d01)
|
||||
session.commit()
|
||||
db.session.add(self.r01)
|
||||
db.session.add(self.d01)
|
||||
db.session.commit()
|
||||
|
||||
def test_create_device_stats(self):
|
||||
session = self.session
|
||||
|
||||
# Compute 1st beacon
|
||||
self.ab01.device = self.d01
|
||||
self.ab01.receiver = self.r01
|
||||
session.add(self.ab01)
|
||||
session.commit()
|
||||
db.session.add(self.ab01)
|
||||
db.session.commit()
|
||||
|
||||
today = date(2017, 12, 10)
|
||||
create_device_stats(session, date=today)
|
||||
create_device_stats(db.session, date=today)
|
||||
|
||||
devicestats = session.query(DeviceStats).all()
|
||||
devicestats = db.session.query(DeviceStats).all()
|
||||
self.assertEqual(len(devicestats), 1)
|
||||
self.assertEqual(devicestats[0].device, self.d01)
|
||||
|
||||
|
@ -68,12 +65,12 @@ class TestStats(TestBaseDB):
|
|||
self.ab02.altitude = 200
|
||||
self.ab02.aircraft_type = 3
|
||||
self.ab02.stealth = False
|
||||
session.add(self.ab02)
|
||||
session.commit()
|
||||
db.session.add(self.ab02)
|
||||
db.session.commit()
|
||||
|
||||
create_device_stats(session, date=today)
|
||||
create_device_stats(db.session, date=today)
|
||||
|
||||
devicestats = session.query(DeviceStats).all()
|
||||
devicestats = db.session.query(DeviceStats).all()
|
||||
self.assertEqual(len(devicestats), 1)
|
||||
self.assertEqual(devicestats[0].device, self.d01)
|
||||
|
||||
|
@ -94,12 +91,12 @@ class TestStats(TestBaseDB):
|
|||
self.ab03.receiver = self.r01
|
||||
self.ab03.error_count = 1
|
||||
self.ab03.software_version = 6.01
|
||||
session.add(self.ab03)
|
||||
session.commit()
|
||||
db.session.add(self.ab03)
|
||||
db.session.commit()
|
||||
|
||||
create_device_stats(session, date=today)
|
||||
create_device_stats(db.session, date=today)
|
||||
|
||||
devicestats = session.query(DeviceStats).all()
|
||||
devicestats = db.session.query(DeviceStats).all()
|
||||
self.assertEqual(len(devicestats), 1)
|
||||
self.assertEqual(devicestats[0].device, self.d01)
|
||||
|
||||
|
@ -122,12 +119,12 @@ class TestStats(TestBaseDB):
|
|||
self.ab04.software_version = 6.01
|
||||
self.ab04.hardware_version = 15
|
||||
self.ab04.real_address = 'DDALFA'
|
||||
session.add(self.ab04)
|
||||
session.commit()
|
||||
db.session.add(self.ab04)
|
||||
db.session.commit()
|
||||
|
||||
create_device_stats(session, date=today)
|
||||
create_device_stats(db.session, date=today)
|
||||
|
||||
devicestats = session.query(DeviceStats).all()
|
||||
devicestats = db.session.query(DeviceStats).all()
|
||||
self.assertEqual(len(devicestats), 1)
|
||||
self.assertEqual(devicestats[0].device, self.d01)
|
||||
|
||||
|
@ -148,12 +145,12 @@ class TestStats(TestBaseDB):
|
|||
self.ab05.receiver = self.r02
|
||||
self.ab05.altitude = 100
|
||||
self.ab05.stealth = True
|
||||
session.add(self.ab05)
|
||||
session.commit()
|
||||
db.session.add(self.ab05)
|
||||
db.session.commit()
|
||||
|
||||
create_device_stats(session, date=today)
|
||||
create_device_stats(db.session, date=today)
|
||||
|
||||
devicestats = session.query(DeviceStats).all()
|
||||
devicestats = db.session.query(DeviceStats).all()
|
||||
self.assertEqual(len(devicestats), 1)
|
||||
self.assertEqual(devicestats[0].device, self.d01)
|
||||
|
||||
|
@ -175,12 +172,12 @@ class TestStats(TestBaseDB):
|
|||
self.ab06.timestamp = datetime(2017, 12, 10, 9, 59, 50)
|
||||
self.ab06.altitude = 300
|
||||
self.ab06.software_version = 6.02
|
||||
session.add(self.ab06)
|
||||
session.commit()
|
||||
db.session.add(self.ab06)
|
||||
db.session.commit()
|
||||
|
||||
create_device_stats(session, date=today)
|
||||
create_device_stats(db.session, date=today)
|
||||
|
||||
devicestats = session.query(DeviceStats).all()
|
||||
devicestats = db.session.query(DeviceStats).all()
|
||||
self.assertEqual(len(devicestats), 1)
|
||||
self.assertEqual(devicestats[0].device, self.d01)
|
||||
|
||||
|
|
|
@ -1,27 +1,26 @@
|
|||
import datetime
|
||||
import unittest
|
||||
|
||||
from tests.base import TestBaseDB
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import TakeoffLanding
|
||||
|
||||
from ogn_python.collect.takeoff_landings import update_takeoff_landings
|
||||
from ogn_python.collect.takeoff_landings import update_entries
|
||||
|
||||
|
||||
class TestTakeoffLanding(TestBaseDB):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
session = self.session
|
||||
|
||||
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("UPDATE airports SET border = ST_Expand(location, 0.05)")
|
||||
db.session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Benediktbeuren','0101000020E6100000D5E76A2BF6C72640D4063A6DA0DB4740',609,4)")
|
||||
db.session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Koenigsdorf','0101000020E610000061E8FED7A6EE26407F20661C10EA4740',600,5)")
|
||||
db.session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Ohlstadt','0101000020E6100000057E678EBF772640A142883E32D44740',655,5)")
|
||||
db.session.execute("UPDATE airports SET border = ST_Expand(location, 0.05)")
|
||||
|
||||
session.execute("INSERT INTO devices(address) VALUES('DDEFF7')")
|
||||
db.session.execute("INSERT INTO devices(address) VALUES('DDEFF7')")
|
||||
|
||||
def count_takeoff_and_landings(self):
|
||||
session = self.session
|
||||
query = session.query(TakeoffLanding)
|
||||
query = db.session.query(TakeoffLanding)
|
||||
i = 0
|
||||
for takeoff_landing in query.all():
|
||||
i = i + 1
|
||||
|
@ -31,63 +30,61 @@ class TestTakeoffLanding(TestBaseDB):
|
|||
|
||||
def test_broken_rope(self):
|
||||
"""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_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',604,'2016-07-02 10:47:12',0,0,0,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',605,'2016-07-02 10:47:32',0,0,-0.096520193,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:47:52',0,0,-0.096520193,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:48:12',0,0,-0.096520193,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000001B2FDD2406F12640E53C762AF3E94740',606,'2016-07-02 10:48:24',284,51.85598112,0.299720599,0.1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000F594AFDEBBF02640623583E5F5E94740',610,'2016-07-02 10:48:26',282,88.89596764,4.729489459,-0.2)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000001C0DE02D90F026401564F188F7E94740',619,'2016-07-02 10:48:27',281,94.45196562,10.66294133,-0.3)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000ABF1D24D62F02640E12D90A0F8E94740',632,'2016-07-02 10:48:28',278,88.89596764,15.59055118,-0.7)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000069FD40CC38F02640C7925F2CF9E94740',650,'2016-07-02 10:48:29',273,83.33996966,18.90779782,-0.7)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000002709AF4A0FF02640C7925F2CF9E94740',670,'2016-07-02 10:48:30',272,79.63597101,20.72136144,-0.3)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000007AA85AF8E7EF2640C7925F2CF9E94740',691,'2016-07-02 10:48:31',269,79.63597101,21.02108204,-0.4)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000068DB43D5C2EF2640E12D90A0F8E94740',712,'2016-07-02 10:48:32',267,74.07997303,21.62560325,-0.5)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000EDA16AE19FEF2640FBC8C014F8E94740',728,'2016-07-02 10:48:33',266,68.52397506,12.36982474,-0.1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000000AFCCE1C7FEF26401564F188F7E94740',733,'2016-07-02 10:48:34',266,68.52397506,2.21488443,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000275633585EEF26402FFF21FDF6E94740',731,'2016-07-02 10:48:35',267,68.52397506,-3.916687833,0.2)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000015891C3539EF26402FFF21FDF6E94740',726,'2016-07-02 10:48:36',270,74.07997303,-6.329692659,1.1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000E63FA4DFBEEE264078C1CDCFFAE94740',712,'2016-07-02 10:48:39',280,88.89596764,-2.611125222,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000004FF9EABD0BEE2640448B6CE7FBE94740',706,'2016-07-02 10:48:43',256,90.74796697,-0.198120396,-2.5)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000046B921B3A0ED264003E78C28EDE94740',706,'2016-07-02 10:48:46',218,92.59996629,-0.198120396,-1.6)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000005C58F3177ED2640900C4C81DFE94740',703,'2016-07-02 10:48:48',202,96.30396495,-1.402082804,-1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000211FF46C56ED26402650D7EDC6E94740',702,'2016-07-02 10:48:51',188,100.0079636,0.502921006,-1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000806DEA295FED2640347D898BB6E94740',704,'2016-07-02 10:48:53',166,100.0079636,0.802641605,-2)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000337D898BB6ED26401383C0CAA1E94740',703,'2016-07-02 10:48:56',133,101.8599629,-1.803403607,-1.7)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000000C05593CE2ED2640FDF675E09CE94740',700,'2016-07-02 10:48:57',123,103.7119622,-2.611125222,-1.4)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000F0CCF1F778EE26409FA87F2394E94740',693,'2016-07-02 10:49:00',105,111.1199596,-2.809245618,-0.6)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000C9073D9B55EF2640BD5296218EE94740',687,'2016-07-02 10:49:04',97,112.9719589,-1.605283211,-0.1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000006F8104C5EF26400C24287E8CE94740',682,'2016-07-02 10:49:06',97,114.8239582,-2.407924816,-0.2)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A0648535A8F02640F597DD9387E94740',676,'2016-07-02 10:49:10',97,118.5279569,-1.402082804,0.1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000D70FC48C03F22640621386EE7FE94740',672,'2016-07-02 10:49:16',97,116.6759575,-1.000762002,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A72C431CEBF22640CB7F48BF7DE94740',666,'2016-07-02 10:49:20',84,114.8239582,-1.605283211,-1.5)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000BFCAA145B6F32640BD5296218EE94740',662,'2016-07-02 10:49:24',49,111.1199596,-1.203962408,-1.5)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000074DA40A70DF4264077E09C11A5E94740',659,'2016-07-02 10:49:27',23,107.4159609,-1.402082804,-1.4)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009AE3EFF11CF42640347D898BB6E94740',656,'2016-07-02 10:49:29',4,101.8599629,-0.797561595,-1.8)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000074DA40A70DF426402650D7EDC6E94740',654,'2016-07-02 10:49:31',347,101.8599629,-1.706883414,-1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000156A4DF38EF3264086EE7F6DEAE94740',649,'2016-07-02 10:49:36',312,98.15596427,-1.503683007,-1.4)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000FAEDEBC039F32640E53C762AF3E94740',644,'2016-07-02 10:49:38',295,96.30396495,-3.012446025,-1.2)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000B04A0F30E0F22640FBC8C014F8E94740',635,'2016-07-02 10:49:40',284,94.45196562,-5.125730251,-0.7)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000F38B25BF58F22640448B6CE7FBE94740',623,'2016-07-02 10:49:43',279,92.59996629,-2.809245618,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A5E8482EFFF12640DC1EAA16FEE94740',617,'2016-07-02 10:49:45',279,88.89596764,-3.312166624,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009F17012859F12640F0AAF40003EA4740',607,'2016-07-02 10:49:49',279,81.48797034,-1.300482601,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000004B5658830AF12640873E323005EA4740',607,'2016-07-02 10:49:51',278,74.07997303,-0.294640589,-0.1)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A0648535A8F0264006373FEB07EA4740',605,'2016-07-02 10:49:54',280,61.11597775,-0.096520193,0.5)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000C74B378941F02640E88C28ED0DEA4740',604,'2016-07-02 10:49:58',292,48.15198247,0.101600203,0.4)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000001B5A643BDFEF264045DB1EAA16EA4740',604,'2016-07-02 10:50:04',302,25.92799056,0.203200406,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000042D2948AB3EF264074029A081BEA4740',604,'2016-07-02 10:50:10',300,5.555997978,0.101600203,0)")
|
||||
session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000013AB192CAFEF264074029A081BEA4740',603,'2016-07-02 10:50:16',0,0,-0.096520193,0)")
|
||||
session.execute("UPDATE aircraft_beacons SET device_id = d.id, agl = altitude - 600 FROM devices d WHERE d.address='DDEFF7'")
|
||||
session.commit()
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',604,'2016-07-02 10:47:12',0,0,0,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',605,'2016-07-02 10:47:32',0,0,-0.096520193,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:47:52',0,0,-0.096520193,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009668B61829F12640330E0887F1E94740',606,'2016-07-02 10:48:12',0,0,-0.096520193,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000001B2FDD2406F12640E53C762AF3E94740',606,'2016-07-02 10:48:24',284,51.85598112,0.299720599,0.1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000F594AFDEBBF02640623583E5F5E94740',610,'2016-07-02 10:48:26',282,88.89596764,4.729489459,-0.2)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000001C0DE02D90F026401564F188F7E94740',619,'2016-07-02 10:48:27',281,94.45196562,10.66294133,-0.3)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000ABF1D24D62F02640E12D90A0F8E94740',632,'2016-07-02 10:48:28',278,88.89596764,15.59055118,-0.7)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000069FD40CC38F02640C7925F2CF9E94740',650,'2016-07-02 10:48:29',273,83.33996966,18.90779782,-0.7)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000002709AF4A0FF02640C7925F2CF9E94740',670,'2016-07-02 10:48:30',272,79.63597101,20.72136144,-0.3)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000007AA85AF8E7EF2640C7925F2CF9E94740',691,'2016-07-02 10:48:31',269,79.63597101,21.02108204,-0.4)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000068DB43D5C2EF2640E12D90A0F8E94740',712,'2016-07-02 10:48:32',267,74.07997303,21.62560325,-0.5)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000EDA16AE19FEF2640FBC8C014F8E94740',728,'2016-07-02 10:48:33',266,68.52397506,12.36982474,-0.1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000000AFCCE1C7FEF26401564F188F7E94740',733,'2016-07-02 10:48:34',266,68.52397506,2.21488443,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000275633585EEF26402FFF21FDF6E94740',731,'2016-07-02 10:48:35',267,68.52397506,-3.916687833,0.2)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000015891C3539EF26402FFF21FDF6E94740',726,'2016-07-02 10:48:36',270,74.07997303,-6.329692659,1.1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000E63FA4DFBEEE264078C1CDCFFAE94740',712,'2016-07-02 10:48:39',280,88.89596764,-2.611125222,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000004FF9EABD0BEE2640448B6CE7FBE94740',706,'2016-07-02 10:48:43',256,90.74796697,-0.198120396,-2.5)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000046B921B3A0ED264003E78C28EDE94740',706,'2016-07-02 10:48:46',218,92.59996629,-0.198120396,-1.6)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000005C58F3177ED2640900C4C81DFE94740',703,'2016-07-02 10:48:48',202,96.30396495,-1.402082804,-1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000211FF46C56ED26402650D7EDC6E94740',702,'2016-07-02 10:48:51',188,100.0079636,0.502921006,-1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000806DEA295FED2640347D898BB6E94740',704,'2016-07-02 10:48:53',166,100.0079636,0.802641605,-2)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000337D898BB6ED26401383C0CAA1E94740',703,'2016-07-02 10:48:56',133,101.8599629,-1.803403607,-1.7)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000000C05593CE2ED2640FDF675E09CE94740',700,'2016-07-02 10:48:57',123,103.7119622,-2.611125222,-1.4)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000F0CCF1F778EE26409FA87F2394E94740',693,'2016-07-02 10:49:00',105,111.1199596,-2.809245618,-0.6)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000C9073D9B55EF2640BD5296218EE94740',687,'2016-07-02 10:49:04',97,112.9719589,-1.605283211,-0.1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000006F8104C5EF26400C24287E8CE94740',682,'2016-07-02 10:49:06',97,114.8239582,-2.407924816,-0.2)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A0648535A8F02640F597DD9387E94740',676,'2016-07-02 10:49:10',97,118.5279569,-1.402082804,0.1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000D70FC48C03F22640621386EE7FE94740',672,'2016-07-02 10:49:16',97,116.6759575,-1.000762002,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A72C431CEBF22640CB7F48BF7DE94740',666,'2016-07-02 10:49:20',84,114.8239582,-1.605283211,-1.5)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000BFCAA145B6F32640BD5296218EE94740',662,'2016-07-02 10:49:24',49,111.1199596,-1.203962408,-1.5)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000074DA40A70DF4264077E09C11A5E94740',659,'2016-07-02 10:49:27',23,107.4159609,-1.402082804,-1.4)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009AE3EFF11CF42640347D898BB6E94740',656,'2016-07-02 10:49:29',4,101.8599629,-0.797561595,-1.8)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000074DA40A70DF426402650D7EDC6E94740',654,'2016-07-02 10:49:31',347,101.8599629,-1.706883414,-1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000156A4DF38EF3264086EE7F6DEAE94740',649,'2016-07-02 10:49:36',312,98.15596427,-1.503683007,-1.4)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000FAEDEBC039F32640E53C762AF3E94740',644,'2016-07-02 10:49:38',295,96.30396495,-3.012446025,-1.2)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000B04A0F30E0F22640FBC8C014F8E94740',635,'2016-07-02 10:49:40',284,94.45196562,-5.125730251,-0.7)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000F38B25BF58F22640448B6CE7FBE94740',623,'2016-07-02 10:49:43',279,92.59996629,-2.809245618,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A5E8482EFFF12640DC1EAA16FEE94740',617,'2016-07-02 10:49:45',279,88.89596764,-3.312166624,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000009F17012859F12640F0AAF40003EA4740',607,'2016-07-02 10:49:49',279,81.48797034,-1.300482601,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000004B5658830AF12640873E323005EA4740',607,'2016-07-02 10:49:51',278,74.07997303,-0.294640589,-0.1)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000A0648535A8F0264006373FEB07EA4740',605,'2016-07-02 10:49:54',280,61.11597775,-0.096520193,0.5)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E6100000C74B378941F02640E88C28ED0DEA4740',604,'2016-07-02 10:49:58',292,48.15198247,0.101600203,0.4)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E61000001B5A643BDFEF264045DB1EAA16EA4740',604,'2016-07-02 10:50:04',302,25.92799056,0.203200406,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000042D2948AB3EF264074029A081BEA4740',604,'2016-07-02 10:50:10',300,5.555997978,0.101600203,0)")
|
||||
db.session.execute("INSERT INTO aircraft_beacons(name, receiver_name, address, location, altitude, timestamp, track, ground_speed, climb_rate, turn_rate) VALUES('FLRDDEFF7', 'Koenigsdf', 'DDEFF7','0101000020E610000013AB192CAFEF264074029A081BEA4740',603,'2016-07-02 10:50:16',0,0,-0.096520193,0)")
|
||||
db.session.execute("UPDATE aircraft_beacons SET device_id = d.id, agl = altitude - 600 FROM devices d WHERE d.address='DDEFF7'")
|
||||
db.session.commit()
|
||||
|
||||
# find the takeoff and the landing
|
||||
update_takeoff_landings(session)
|
||||
update_entries(db.session, start=datetime.datetime(2016, 7, 2, 0, 0, 0), end=datetime.datetime(2016, 7, 2, 23, 59, 59))
|
||||
self.assertEqual(self.count_takeoff_and_landings(), 2)
|
||||
|
||||
# we should not find the takeoff and the landing again
|
||||
update_takeoff_landings(session)
|
||||
update_entries(db.session, start=datetime.datetime(2016, 7, 2, 0, 0, 0), end=datetime.datetime(2016, 7, 2, 23, 59, 59))
|
||||
self.assertEqual(self.count_takeoff_and_landings(), 2)
|
||||
|
||||
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
import unittest
|
||||
import os
|
||||
|
||||
from tests.base import TestBaseDB
|
||||
from tests.base import TestBaseDB, db
|
||||
|
||||
from ogn_python.model import DeviceInfo
|
||||
from ogn_python.commands.database import import_file
|
||||
|
||||
from ogn_python import app
|
||||
|
||||
|
||||
class TestDatabase(TestBaseDB):
|
||||
def test_import_ddb_file(self):
|
||||
session = self.session
|
||||
runner = app.test_cli_runner()
|
||||
result = runner.invoke(import_file, [os.path.dirname(__file__) + '/../custom_ddb.txt'])
|
||||
self.assertEqual(result.exit_code, 0)
|
||||
|
||||
import_file(path=os.path.dirname(__file__) + '/../custom_ddb.txt')
|
||||
|
||||
device_infos = session.query(DeviceInfo).all()
|
||||
device_infos = db.session.query(DeviceInfo).all()
|
||||
self.assertEqual(len(device_infos), 6)
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
import os
|
||||
|
||||
import unittest
|
||||
import inspect
|
||||
|
||||
import ogn.model
|
||||
os.environ['OGN_CONFIG_MODULE'] = 'config/test.py'
|
||||
|
||||
import ogn_python.model # noqa: E402
|
||||
|
||||
|
||||
class TestStringMethods(unittest.TestCase):
|
||||
def test_string(self):
|
||||
|
||||
try:
|
||||
for name, obj in inspect.getmembers(ogn.model):
|
||||
for name, obj in inspect.getmembers(ogn_python.model):
|
||||
print("Testing: {}".format(name))
|
||||
if inspect.isclass(obj):
|
||||
print(obj())
|
||||
|
|
Ładowanie…
Reference in New Issue