From 23cc34da0af5302d72db204d2944b2b60fcfd0e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Sat, 26 Jan 2019 20:14:18 +0100 Subject: [PATCH] Handle session rollbacks during tests session --- tests/base.py | 20 ++++++++++++++------ tests/collect/test_database.py | 4 ++-- tests/collect/test_logbook.py | 6 +++--- tests/collect/test_ognrange.py | 6 +++--- tests/collect/test_stats.py | 6 +++--- tests/collect/test_takeoff_landing.py | 6 +++--- tests/commands/test_database.py | 4 ++-- 7 files changed, 30 insertions(+), 22 deletions(-) diff --git a/tests/base.py b/tests/base.py index 7834f04..220945a 100644 --- a/tests/base.py +++ b/tests/base.py @@ -4,15 +4,15 @@ import os os.environ['OGN_CONFIG_MODULE'] = 'config.test' -class TestCaseDB(unittest.TestCase): +class TestBaseDB(unittest.TestCase): session = None engine = None - app = None - def setUp(self): + @classmethod + def setUpClass(cls): from ogn.commands.dbutils import engine, session - self.session = session - self.engine = engine + cls.session = session + cls.engine = engine from ogn.commands.database import drop drop(sure='y') @@ -20,8 +20,16 @@ class TestCaseDB(unittest.TestCase): from ogn.commands.database import init init() + def setUp(self): + self.session.execute(""" + DELETE FROM aircraft_beacons; + DELETE FROM receiver_beacons; + DELETE FROM takeoff_landings; + DELETE FROM logbook; + """) + def tearDown(self): - pass + self.session.rollback() if __name__ == '__main__': diff --git a/tests/collect/test_database.py b/tests/collect/test_database.py index d0ac5a6..be6b33c 100644 --- a/tests/collect/test_database.py +++ b/tests/collect/test_database.py @@ -1,12 +1,12 @@ import unittest -from tests.base import TestCaseDB +from tests.base import TestBaseDB from ogn.model import AircraftBeacon, ReceiverBeacon, Device, Receiver from ogn.collect.database import add_missing_devices, add_missing_receivers -class TestDatabase(TestCaseDB): +class TestDatabase(TestBaseDB): def test_update_devices(self): session = self.session diff --git a/tests/collect/test_logbook.py b/tests/collect/test_logbook.py index 7138273..7f021e2 100644 --- a/tests/collect/test_logbook.py +++ b/tests/collect/test_logbook.py @@ -1,14 +1,14 @@ import unittest -from tests.base import TestCaseDB +from tests.base import TestBaseDB from ogn.model import Logbook, Airport, Device, TakeoffLanding from ogn.collect.logbook import update_logbook -class TestLogbook(TestCaseDB): +class TestLogbook(TestBaseDB): def setUp(self): - super(TestLogbook, self).setUp() + super().setUp() session = self.session # Create basic data and insert diff --git a/tests/collect/test_ognrange.py b/tests/collect/test_ognrange.py index 4dd01af..99f87a2 100644 --- a/tests/collect/test_ognrange.py +++ b/tests/collect/test_ognrange.py @@ -1,15 +1,15 @@ import unittest from datetime import date -from tests.base import TestCaseDB +from tests.base import TestBaseDB from ogn.model import AircraftBeacon, Receiver, ReceiverCoverage, Device from ogn.collect.ognrange import create_receiver_coverage -class TestOGNrange(TestCaseDB): +class TestOGNrange(TestBaseDB): def setUp(self): - super(TestOGNrange, self).setUp() + super().setUp() session = self.session # Create basic data and insert diff --git a/tests/collect/test_stats.py b/tests/collect/test_stats.py index 7cb24ee..91b6f20 100644 --- a/tests/collect/test_stats.py +++ b/tests/collect/test_stats.py @@ -1,16 +1,16 @@ import unittest from datetime import datetime, date -from tests.base import TestCaseDB +from tests.base import TestBaseDB from ogn.model import AircraftBeacon, ReceiverBeacon, Receiver, Device, DeviceStats from ogn.collect.stats import create_device_stats -class TestStats(TestCaseDB): +class TestStats(TestBaseDB): def setUp(self): - super(TestStats, self).setUp() + super().setUp() session = self.session # Prepare Beacons diff --git a/tests/collect/test_takeoff_landing.py b/tests/collect/test_takeoff_landing.py index 284eb0d..8141a8d 100644 --- a/tests/collect/test_takeoff_landing.py +++ b/tests/collect/test_takeoff_landing.py @@ -1,15 +1,15 @@ import unittest -from tests.base import TestCaseDB +from tests.base import TestBaseDB from ogn.model import TakeoffLanding from ogn.collect.takeoff_landings import update_takeoff_landings -class TestTakeoffLanding(TestCaseDB): +class TestTakeoffLanding(TestBaseDB): def setUp(self): - super(TestTakeoffLanding, self).setUp() + super().setUp() session = self.session session.execute("INSERT INTO airports(name, location, altitude, style) VALUES('Benediktbeuren','0101000020E6100000D5E76A2BF6C72640D4063A6DA0DB4740',609,4)") diff --git a/tests/commands/test_database.py b/tests/commands/test_database.py index da32f82..ef9ec09 100644 --- a/tests/commands/test_database.py +++ b/tests/commands/test_database.py @@ -1,13 +1,13 @@ import unittest import os -from tests.base import TestCaseDB +from tests.base import TestBaseDB from ogn.model import DeviceInfo from ogn.commands.database import import_file -class TestDatabase(TestCaseDB): +class TestDatabase(TestBaseDB): def test_import_ddb_file(self): session = self.session