]> ToastFreeware Gitweb - philipp/winterrodeln/wrfeed.git/blobdiff - tests/test_wrfeed.py
Implement test_bahnen.
[philipp/winterrodeln/wrfeed.git] / tests / test_wrfeed.py
index c057b12dc62d3646a6026fc8554cc01e66b081f0..6397208ec4546aac3433652dc90d678d5362280b 100644 (file)
@@ -32,14 +32,14 @@ class TestDbWrfeed(WrfeedTestBase):
 
             # connect to database
             self.engine = sqlalchemy.create_engine(uri)
+            con = self.engine.connect()
 
             # fill database
             with open('tests/testdb.sql', 'r') as f:
                 sql = f.read()
-            self.engine.execute(sql)
+            con.execute(sql)
 
             # update dates
-            con = self.engine.connect()
             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,))
@@ -75,6 +75,24 @@ class TestDbWrfeed(WrfeedTestBase):
             self.assertIn('Rodelbahnberichte', root.find('{http://www.w3.org/2005/Atom}title').text)
             self.assertEqual(len(root.findall('{http://www.w3.org/2005/Atom}entry')), count, '"{}" not found {} times'.format(bahn, count))
 
+    def test_bahnen(self):
+        bahnen_count = {
+            '761': 2,
+            '793': 0,
+            '100': 0,
+            '1417': 1,
+            '5': 1,
+            '228': 1,
+            '793+100': 0,
+            '761+1417+5+228': 5,
+        }
+        for bahnen, count in bahnen_count.items():
+            result = self.app.get('/berichte/bahnen/{}'.format(bahnen))
+            self.assertTrue(result.data.startswith(b'<?xml'))
+            root = et.fromstring(result.data)
+            self.assertIn('Rodelbahnberichte', root.find('{http://www.w3.org/2005/Atom}title').text)
+            self.assertEqual(len(root.findall('{http://www.w3.org/2005/Atom}entry')), count, 'bahnen "{}" not found {} times'.format(bahnen, count))
+
     def test_region(self):
         region_count = {
             'tirol': 6,