diff --git a/tests/base.py b/tests/base.py new file mode 100644 index 0000000..7834f04 --- /dev/null +++ b/tests/base.py @@ -0,0 +1,28 @@ +import unittest +import os + +os.environ['OGN_CONFIG_MODULE'] = 'config.test' + + +class TestCaseDB(unittest.TestCase): + session = None + engine = None + app = None + + def setUp(self): + from ogn.commands.dbutils import engine, session + self.session = session + self.engine = engine + + from ogn.commands.database import drop + drop(sure='y') + + from ogn.commands.database import init + init() + + def tearDown(self): + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/collect/test_database.py b/tests/collect/test_database.py index 39f8930..d0ac5a6 100644 --- a/tests/collect/test_database.py +++ b/tests/collect/test_database.py @@ -1,33 +1,12 @@ import unittest -import os + +from tests.base import TestCaseDB from ogn.model import AircraftBeacon, ReceiverBeacon, Device, Receiver from ogn.collect.database import add_missing_devices, add_missing_receivers -class TestDB(unittest.TestCase): - session = None - engine = None - app = None - - def setUp(self): - os.environ['OGN_CONFIG_MODULE'] = 'config.test' - from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine - - from ogn.commands.database import init - init() - - def tearDown(self): - session = self.session - 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() - +class TestDatabase(TestCaseDB): def test_update_devices(self): session = self.session diff --git a/tests/collect/test_logbook.py b/tests/collect/test_logbook.py index b6e36d1..7138273 100644 --- a/tests/collect/test_logbook.py +++ b/tests/collect/test_logbook.py @@ -1,23 +1,15 @@ import unittest -import os + +from tests.base import TestCaseDB from ogn.model import Logbook, Airport, Device, TakeoffLanding from ogn.collect.logbook import update_logbook -class TestDB(unittest.TestCase): - session = None - engine = None - app = None - +class TestLogbook(TestCaseDB): def setUp(self): - os.environ['OGN_CONFIG_MODULE'] = 'config.test' - from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine - - from ogn.commands.database import init - init() + super(TestLogbook, self).setUp() + session = self.session # Create basic data and insert self.dd0815 = Device(address='DD0815') @@ -39,14 +31,6 @@ class TestDB(unittest.TestCase): self.landing_koenigsdorf_dd0815_later = TakeoffLanding(is_takeoff=False, timestamp='2016-06-02 10:05:00', airport_id=self.koenigsdorf.id, device_id=self.dd0815.id) 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 tearDown(self): - session = self.session - session.execute("DELETE FROM takeoff_landings") - session.execute("DELETE FROM logbook") - session.execute("DELETE FROM devices") - session.execute("DELETE FROM airports") - session.commit() - def get_logbook_entries(self): session = self.session return session.query(Logbook).order_by(Logbook.takeoff_airport_id, Logbook.reftime).all() diff --git a/tests/collect/test_ognrange.py b/tests/collect/test_ognrange.py index c6c7585..4dd01af 100644 --- a/tests/collect/test_ognrange.py +++ b/tests/collect/test_ognrange.py @@ -1,24 +1,16 @@ import unittest -import os from datetime import date +from tests.base import TestCaseDB + from ogn.model import AircraftBeacon, Receiver, ReceiverCoverage, Device from ogn.collect.ognrange import create_receiver_coverage -class TestDB(unittest.TestCase): - session = None - engine = None - app = None - +class TestOGNrange(TestCaseDB): def setUp(self): - os.environ['OGN_CONFIG_MODULE'] = 'config.test' - from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine - - from ogn.commands.database import init - init() + super(TestOGNrange, self).setUp() + session = self.session # Create basic data and insert self.dd0815 = Device(address='DD0815') @@ -41,14 +33,6 @@ class TestDB(unittest.TestCase): session.add(self.ab02) session.commit() - def tearDown(self): - session = self.session - 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): session = self.session diff --git a/tests/collect/test_stats.py b/tests/collect/test_stats.py index 551eaa9..7cb24ee 100644 --- a/tests/collect/test_stats.py +++ b/tests/collect/test_stats.py @@ -1,25 +1,17 @@ import unittest -import os from datetime import datetime, date +from tests.base import TestCaseDB + from ogn.model import AircraftBeacon, ReceiverBeacon, Receiver, Device, DeviceStats from ogn.collect.stats import create_device_stats -class TestDB(unittest.TestCase): - session = None - engine = None - app = None - +class TestStats(TestCaseDB): def setUp(self): - os.environ['OGN_CONFIG_MODULE'] = 'config.test' - from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine - - from ogn.commands.database import init - init() + super(TestStats, self).setUp() + session = self.session # Prepare Beacons self.ab01 = AircraftBeacon(name='FLRDD4711', receiver_name='Koenigsdf', timestamp='2017-12-10 10:00:01') @@ -42,16 +34,6 @@ class TestDB(unittest.TestCase): session.add(self.d01) session.commit() - def tearDown(self): - session = self.session - session.execute("DELETE FROM device_infos") - session.execute("DELETE FROM device_stats") - 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_create_device_stats(self): session = self.session diff --git a/tests/collect/test_takeoff_landing.py b/tests/collect/test_takeoff_landing.py index 89476a7..284eb0d 100644 --- a/tests/collect/test_takeoff_landing.py +++ b/tests/collect/test_takeoff_landing.py @@ -1,24 +1,16 @@ import unittest -import os + +from tests.base import TestCaseDB from ogn.model import TakeoffLanding from ogn.collect.takeoff_landings import update_takeoff_landings -class TestDB(unittest.TestCase): - session = None - engine = None - app = None - +class TestTakeoffLanding(TestCaseDB): def setUp(self): - os.environ['OGN_CONFIG_MODULE'] = 'config.test' - from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine - - from ogn.commands.database import init - init() + super(TestTakeoffLanding, self).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)") @@ -27,14 +19,6 @@ class TestDB(unittest.TestCase): session.execute("INSERT INTO devices(address) VALUES('DDEFF7')") - def tearDown(self): - session = self.session - session.execute("DELETE FROM takeoff_landings") - session.execute("DELETE FROM aircraft_beacons") - session.execute("DELETE FROM airports") - session.commit() - pass - def count_takeoff_and_landings(self): session = self.session query = session.query(TakeoffLanding) diff --git a/tests/commands/test_database.py b/tests/commands/test_database.py index 7387a19..da32f82 100644 --- a/tests/commands/test_database.py +++ b/tests/commands/test_database.py @@ -1,27 +1,13 @@ import unittest import os +from tests.base import TestCaseDB + from ogn.model import DeviceInfo from ogn.commands.database import import_file -class TestDB(unittest.TestCase): - session = None - engine = None - app = None - - def setUp(self): - os.environ['OGN_CONFIG_MODULE'] = 'config.test' - from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine - - from ogn.commands.database import init - init() - - def tearDown(self): - pass - +class TestDatabase(TestCaseDB): def test_import_ddb_file(self): session = self.session