+from sqlalchemy.engine import create_engine
+from sqlalchemy.orm import sessionmaker
+import wrpylib.wrmwdb
+
+
+TEST_DB = 'mysql://philipp@localhost:3306/philipp_winterrodeln_wrpylib_wrpylib_test?charset=utf8mb4'
+
+
+def setup_test_database():
+ engine = create_engine(TEST_DB)
+ testdb = os.path.join(os.path.dirname(__file__), 'testdb.sql')
+ with open(testdb, 'r') as f:
+ sql = f.read()
+ with engine.begin() as con:
+ con.execute(sql)
+
+ # update dates
+ seconds_diff, = con.execute("SELECT TIMESTAMPDIFF(SECOND, '2017-03-31 07:00', now())").fetchone()
+ seconds_diff = int(seconds_diff)
+ con.execute(
+ "UPDATE wrreport SET date_report = DATE(date_report + INTERVAL %s SECOND) WHERE time_report IS NULL",
+ (seconds_diff,))
+ con.execute(
+ "UPDATE wrreport SET date_report = DATE(TIMESTAMP(date_report, time_report) + INTERVAL %s SECOND) WHERE time_report IS NOT NULL",
+ (seconds_diff,))
+ con.execute(
+ "UPDATE wrreport SET time_report = TIME(TIMESTAMP(date_report, time_report) + INTERVAL %s SECOND) WHERE time_report IS NOT NULL",
+ (seconds_diff,))
+ con.execute("UPDATE wrreport SET date_entry = date_entry + INTERVAL %s SECOND", (seconds_diff,))
+ con.execute("UPDATE wrreport SET date_invalid = date_invalid + INTERVAL %s SECOND", (seconds_diff,))
+ con.execute("UPDATE wrreport SET delete_date = delete_date + INTERVAL %s SECOND", (seconds_diff,))
+ return engine
+
+
+class TestWrMwDb(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.engine = setup_test_database()
+ cls.Session = sessionmaker(bind=cls.engine)
+
+ def setUp(self):
+ self.metadata = sqlalchemy.MetaData()
+ self.session = self.Session()