]> ToastFreeware Gitweb - philipp/winterrodeln/wrfeed.git/blobdiff - tests/test_wrfeed.py
Add basic unittests.
[philipp/winterrodeln/wrfeed.git] / tests / test_wrfeed.py
diff --git a/tests/test_wrfeed.py b/tests/test_wrfeed.py
new file mode 100644 (file)
index 0000000..5eaf220
--- /dev/null
@@ -0,0 +1,46 @@
+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'))