--- /dev/null
+import unittest
+import sqlalchemy
+from sqlalchemy.engine.url import URL, make_url
+import wrfeed
+
+
+class WrfeedTestBase(unittest.TestCase):
+ def setUp(self):
+ wrfeed.app.config['TESTING'] = True
+ self.app = wrfeed.app.test_client()
+
+
+class TestNoDbWrfeed(WrfeedTestBase):
+ def test_root(self):
+ result = self.app.get('/')
+ self.assertTrue(result.data.startswith(b'<?xml version='))
+ self.assertIn(b'page about feeds', result.data)
+
+
+class TestDbWrfeed(WrfeedTestBase):
+ def setUp(self):
+ super().setUp()
+ with wrfeed.app.app_context():
+ # create database
+ uri = make_url(wrfeed.app.config['DATABASE_URI'])
+ self.uri = uri
+ uri_nodb = URL(uri.drivername, host=uri.host, port=uri.port, username=uri.username, password=uri.password, query=uri.query)
+ engine_nodb = sqlalchemy.create_engine(uri_nodb)
+ engine_nodb.execute("DROP DATABASE IF EXISTS {}".format(uri.database))
+ engine_nodb.execute("CREATE DATABASE {} CHARACTER SET = '{}'".format(uri.database, 'UTF8'))
+
+ # connect to database
+ self.engine = sqlalchemy.create_engine(uri)
+
+ # fill database
+ with open('tests/testdb.sql', 'r') as f:
+ sql = f.read()
+ self.engine.execute(sql)
+
+ def tearDown(self):
+ with wrfeed.app.app_context():
+ self.engine.execute("DROP DATABASE {}".format(self.uri.database))
+
+ def test_alle(self):
+ result = self.app.get('/berichte/alle')
+ self.assertTrue(result.data.startswith(b'<?xml'))