Add basic unittests.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sun, 23 Jul 2017 19:23:55 +0000 (19:23 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sun, 23 Jul 2017 19:23:55 +0000 (19:23 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wrfeed/trunk@2650 7aebc617-e5e2-0310-91dc-80fb5f6d2477

tests/test_wrfeed.py [new file with mode: 0644]
tests/testdb.sql [new file with mode: 0644]
tests/testdb.txt [new file with mode: 0644]
wrfeed/test.cfg [new file with mode: 0644]
wrfeed/tests/__init__.py [deleted file]
wrfeed/tests/functional/__init__.py [deleted file]
wrfeed/tests/functional/test_berichte.py [deleted file]
wrfeed/tests/test_models.py [deleted file]

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'))
diff --git a/tests/testdb.sql b/tests/testdb.sql
new file mode 100644 (file)
index 0000000..535b387
--- /dev/null
@@ -0,0 +1,192 @@
+-- MySQL dump 10.16  Distrib 10.1.23-MariaDB, for debian-linux-gnu (i686)
+--
+-- Host: localhost    Database: philipp_winterrodeln_wiki
+-- ------------------------------------------------------
+-- Server version      10.1.23-MariaDB-9+deb9u1
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `wrreport`
+--
+
+DROP TABLE IF EXISTS wrreport;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE wrreport (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  page_id int(11) DEFAULT NULL,
+  page_title varchar(255) DEFAULT NULL,
+  date_report date DEFAULT NULL,
+  time_report time DEFAULT NULL,
+  date_entry datetime DEFAULT NULL,
+  date_invalid datetime DEFAULT NULL,
+  `condition` int(11) DEFAULT NULL,
+  description text,
+  author_name varchar(30) DEFAULT NULL,
+  author_ip varchar(15) DEFAULT NULL,
+  author_userid int(11) DEFAULT NULL,
+  author_username varchar(30) DEFAULT NULL,
+  delete_date datetime DEFAULT NULL,
+  delete_person_name varchar(30) DEFAULT NULL,
+  delete_person_ip varchar(15) DEFAULT NULL,
+  delete_person_userid int(11) DEFAULT NULL,
+  delete_person_username varchar(30) DEFAULT NULL,
+  delete_reason_public text,
+  delete_invisible tinyint(1) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY idx_author (author_userid,`condition`,delete_date),
+  KEY idx_page (page_title,date_invalid),
+  KEY idx_date_invalid (date_invalid),
+  KEY idx_date_entry (date_entry)
+) ENGINE=MyISAM AUTO_INCREMENT=19597 DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `wrreport`
+--
+
+INSERT INTO wrreport VALUES (19587,793,'Prantner Alm','2017-03-19','13:00:00','2017-03-19 18:56:07','2017-03-28 18:56:07',NULL,'Obere Hälfte der Rodelbahn gut rodelbar! untere Hälfte teilweise aper und weich. Essen wie immer top!','CHARLY',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19588,251,'Juifenalm','2017-03-20','15:00:00','2017-03-20 23:17:08','2017-03-29 23:17:08',4,'Wärme und Regen haben innerhalb von drei Tagen die Superbahn in ein Stückwerk verwandelt. Trotzdem mit der Rodel gerade noch schneller als zu Fuß! Das war für uns definitiv der heurige Rodelabschluß! Oben auf der Alm sonnig, warm, windstill und beste Bedienung: das gibt es auch in der rodelfreien Zeit!','Ramon',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19589,1804,'Haunold','2017-03-21',NULL,'2017-03-22 07:07:57','2017-03-31 07:07:57',1,'Kaum zu glauben, aber die Bahn war bestens präpariert,  mit viel Kunstschnee,  und die rasante Abfahrt hat richtig Spass gemacht. Ab mittags wird der Schnee dann natürlich immer weicher. Einziger Nachteil: der unfreundliche Wirt auf der Haunold Hütte.','Brigitte',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19590,761,'Pleisenhütte Axamer Lizum','2017-03-22',NULL,'2017-03-22 18:26:20','2017-03-31 18:26:20',4,'Leider gibt es schon mehrere apere Stellen nun auch im oberen Bereich. Für geübte Rodler sicher zu umfahren. Durch die hohen Temperaturen ziemlich weich. Vielleicht kommt Frau Holle nochmal in Fahrt ......','Gudrun - Pleisenwirtin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19591,228,'Brandstatt Alm','2017-03-25','21:30:00','2017-03-25 23:06:12','2017-04-03 23:06:12',4,'es war am abend schon etwas durchgefroren, allerdings rinnt die bahn derzeit einfach davon. von der brandstatt bis zur auffang alm geht es noch großteils durchgängig und flott dahin, absteigen muss man trotzdem einige male. runter dann zum parkplatz josef halten sich rodel- und fußwegabschnitte die wage. für einen saisonabschluss war es jedoch immer noch sehr lohnenswert! auch die gastfreundschaft auf der brandstattalm ist einzigartig. bis zum 2. april ist die alm noch geöffnet, allerdings nur untertags bis 17:00 uhr!!!','steffl',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19592,761,'Pleisenhütte Axamer Lizum','2017-03-26',NULL,'2017-03-26 06:03:59','2017-04-04 06:03:59',5,'Inzwischen sind zu viele apere Stellen. So früh wie dieses Jahr mussten wir die Bahn noch nie schließen. Hütte aller Voraussicht noch bis 17.4. ( Ostermontag ) geöffnet. Früh Frühjahrswanderungen.....','Gudrun - Pleisenwirtin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19593,237,'Gleirschalm','2017-03-26',NULL,'2017-03-26 23:25:28','2017-04-04 23:25:28',5,'Auch bei unserer Bahn hat das Tauwetter ganze Arbeit geleistet.Ein Dank den vielen Rodlern für euren Besuch. Trotzdem haben wir noch am Sa.1.4 und So 2.4. sowie vom Sa. 8.4 bis Di 18.4. Geöffnet. Wandern ist auch schön. ','Gleirschalm',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19594,1417,'Grindelwald - First','2017-03-28','16:00:00','2017-03-30 01:24:49','2017-04-08 01:24:49',2,'Die Strecke First-Schreckfeld ist gut befahrbar. Trotz warmer Temperaturen/Sonne. Die Station Schreckfeld kann jedoch nicht mehr direkt angefahren werden. Hier muss man fussgaengig einen kleinen Aufstieg (Bruecke) begehen. Abfahrt nach Bort nicht mehr moeglich. Schnee fehlt.','alemannenrodel',NULL,328,'Alemannenrodel',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+INSERT INTO wrreport VALUES (19595,5,'Birgitzer Alm (vom Adelshof)','2017-03-31','12:00:00','2017-04-01 00:04:08','2017-04-10 00:04:08',NULL,'He sers i bims da josef und i bin a mandl vong rodelsickness her!','Da Josef',NULL,NULL,NULL,'2017-04-07 21:27:21','Philipp',NULL,1,'Philipp','Nonsens',0);
+INSERT INTO wrreport VALUES (19596,5,'Birgitzer Alm (vom Adelshof)','2017-04-21','14:00:00','2017-04-21 18:26:20','2017-04-30 18:26:20',3,'Nach den unglaublich ergiebigen Schneefällen und kalten Temperaturen der letzten Tage mußte ich einfach nochmal die Rodel auspacken und mein Glück versuchen - uind es hat sich gelohnt!\n<p>\nMan muß gleich vorausschicken... das Befahren der Rodelbahn ist derzeit nur <b>ab der Mittelstation</b> (Kreuz) sinnvoll möglich, da ab hier die Tourengeher den vielen Schnee einigermaßen geplättet haben. Es ist jede Menge Schnee gefallen und noch vorhanden, bis ganz unten, Wahnsinn! \nUnd absurd: Der obere Teil von der Alm bis kurz vor dem Kreuz geht praktisch nicht, da zu viel Tiefschnee liegt!<br>Die gesamte Strecke (ab dem Kreuz) hatte ausreichend Schnee ohne durchkommende Steine, (noch) keine aperen Stellen, keine Mugel, war allerdings natürlich nicht geräumt und entsprechend muß man relativ genau die Spur halten, aber man wird mit einer flotten Abfahrt belohnt!\n<br><br>\nNatürlich dürfte der ganze Zauber schnell wieder vorbei sein, aber diese Wochenende gehts bestimmt noch!\n\nAlso, wer das beste aus dem Schneewunder machen möchte,  und auf eine Hütteneinkehr verzichten kann (geschlossen), der soll seine Rodel auspacken und noch die letzten Rodel-Tage auskosten!<br><br>\nAb Mittelteil also ein gutes <b>Mittelmäßig</b>, was sich sogar in ein Gut verbessern könnte, sollten mehr Leute herunterfahren und damit die Piste \"planieren\". ','Nicolas',NULL,124,'Nicolas',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+
+--
+-- Table structure for table `wrsledruncache`
+--
+
+DROP TABLE IF EXISTS wrsledruncache;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE wrsledruncache (
+  page_id int(11) NOT NULL,
+  page_title varchar(255) DEFAULT NULL,
+  name_url varchar(255) DEFAULT NULL,
+  position_latitude double DEFAULT NULL,
+  position_longitude double DEFAULT NULL,
+  top_latitude double DEFAULT NULL,
+  top_longitude double DEFAULT NULL,
+  top_elevation int(11) DEFAULT NULL,
+  bottom_latitude double DEFAULT NULL,
+  bottom_longitude double DEFAULT NULL,
+  bottom_elevation int(11) DEFAULT NULL,
+  length int(11) DEFAULT NULL,
+  difficulty int(11) DEFAULT NULL,
+  avalanches int(11) DEFAULT NULL,
+  operator varchar(255) DEFAULT NULL,
+  public_transport int(11) DEFAULT NULL,
+  walkup_possible tinyint(1) DEFAULT NULL,
+  walkup_time int(11) DEFAULT NULL,
+  walkup_separate double DEFAULT NULL,
+  walkup_separate_comment varchar(255) DEFAULT NULL,
+  lift tinyint(1) DEFAULT NULL,
+  lift_details varchar(255) DEFAULT NULL,
+  night_light double DEFAULT NULL,
+  night_light_comment varchar(255) DEFAULT NULL,
+  night_light_days int(11) DEFAULT NULL,
+  night_light_days_comment varchar(255) DEFAULT NULL,
+  sled_rental tinyint(1) DEFAULT NULL,
+  sled_rental_comment varchar(255) DEFAULT NULL,
+  cachet varchar(255) DEFAULT NULL,
+  information_web varchar(255) DEFAULT NULL,
+  information_phone varchar(255) DEFAULT NULL,
+  image varchar(255) DEFAULT NULL,
+  show_in_overview tinyint(1) DEFAULT NULL,
+  forum_id int(11) DEFAULT NULL,
+  under_construction tinyint(1) DEFAULT NULL,
+  PRIMARY KEY (page_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `wrsledruncache`
+--
+
+INSERT INTO wrsledruncache VALUES (5,'Birgitzer_Alm_(vom_Adelshof)',NULL,47.21052,11.302868,47.203959,11.308052,1808,47.218007,11.295303,1370,3200,NULL,1,'Birgitzer Alm',6,1,90,0,NULL,0,NULL,0,NULL,NULL,NULL,0,NULL,'Nein',NULL,'+43-664-5970026 (Birgitzer Alm)','Rodelbahn Birgitzer Alm 2007-11-17.jpg',1,44,0);
+INSERT INTO wrsledruncache VALUES (228,'Brandstatt_Alm',NULL,47.111253,11.261659,47.107308,11.258417,1780,47.116256,11.249898,1360,3510,NULL,1,'Brandstatt Alm',5,1,75,0,NULL,0,NULL,0,NULL,NULL,NULL,1,'Ja','Nein','http://www.brandstatt-alm.at','+43-664-3715044 (Brandstatt Alm)','Rodelbahn_Brandstattalm_2014-01-06.JPG',1,34,0);
+INSERT INTO wrsledruncache VALUES (237,'Gleirschalm',NULL,47.194483,11.098946,47.188444,11.099407,1666,47.201107,11.100918,1515,1600,1,2,NULL,6,1,30,1,NULL,0,NULL,1,NULL,7,NULL,1,'Haus Holzer; St. Sigmund 46 (4€/Tag)','Nein',NULL,'+43-664-3254697 (Gleirsch Alm)','Rodelbahn_Gleirschalm_2014-03-22.JPG',1,21,0);
+INSERT INTO wrsledruncache VALUES (251,'Juifenalm',NULL,47.169552,11.15699,47.16949,11.16207,2022,47.171528,11.144047,1430,4580,2,1,'Juifenalm',5,1,105,0,NULL,0,NULL,0,NULL,NULL,NULL,0,NULL,'Nein',NULL,'+43-664-5422090 (Juifenalm)','Rodelbahn Juifenalm 2009-12-15 ObersterAbschnitt.JPG',1,25,0);
+INSERT INTO wrsledruncache VALUES (761,'Pleisenhütte_Axamer_Lizum',NULL,47.197153,11.292548,47.196139,11.292143,1808,47.196621,11.301152,1555,2000,1,1,NULL,6,1,50,0,NULL,0,NULL,0,NULL,NULL,NULL,1,'Ja','Nein',NULL,'+43-664-1971861 (Pleisenhütte)','Rodelbahn_Pleisenhuette_20100315.JPG',1,132,0);
+INSERT INTO wrsledruncache VALUES (793,'Prantner_Alm',NULL,46.9225331,11.4718152,46.9273984,11.4779414,1831,46.9167146,11.4635969,1540,3700,NULL,1,'Prantner Alm',4,1,60,0,NULL,0,NULL,0,NULL,NULL,NULL,1,'[[Prantner Alm (Gasthaus)]]','Nein',NULL,'+39-3334-656009 (Prantner Alm)','Rodelbahn_Prantner_Alm_2014-01-08.JPG',1,186,0);
+INSERT INTO wrsledruncache VALUES (926,'Hühnerspiel',NULL,46.943136,11.465,46.942239,11.468819,1866,46.953256,11.459509,1305,4560,3,1,'Nein',4,1,100,0,NULL,0,NULL,0,NULL,NULL,NULL,0,NULL,'Nein','Nein','+39-335-5666181 (Hühnerspielhütte)','Rodelbahn_Hühnerspiel_2011-02-06.jpg',1,171,0);
+INSERT INTO wrsledruncache VALUES (1417,'Grindelwald_-_First',NULL,46.659931,8.053685,NULL,NULL,2166,NULL,NULL,1061,8600,3,2,'Jungfraubahnen Management AG',6,1,240,0.5,NULL,1,'Gondel (8:00/8:30 - 16:15/17:00)',0,NULL,NULL,NULL,1,'Intersport Grindelwald',NULL,'https://www.jungfrau.ch/de-ch/jungfrau-ski-region/wintersportinfo/','+41-33-8287728 (Schnee-Telefon)','Rodelbahn First 2012-01-22.jpg',1,224,0);
+INSERT INTO wrsledruncache VALUES (1804,'Haunold',NULL,46.72396929,12.26995826,46.71796379,12.27819264,1494,46.73022048,12.2783643,1182,2500,2,1,'Sextner Dolomiten AG',NULL,0,NULL,0,'Aufstieg nicht erlaubt',1,'Sessellift',NULL,NULL,NULL,NULL,1,'Talstation Haunold Sessellift','Nein','http://www.s-dolomiten.com/de/bergbahnen-skigebiet/skiregion/rodelbahnen.html','+39-0474-710355 (Sextner Dolomiten AG)',NULL,1,NULL,1);
+
+--
+-- Table structure for table `wrregion`
+--
+
+DROP TABLE IF EXISTS wrregion;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE wrregion (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(50) DEFAULT NULL,
+  name_url varchar(50) DEFAULT NULL,
+  page_id int(11) DEFAULT NULL,
+  border multipolygon DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `wrregion`
+--
+
+INSERT INTO wrregion VALUES (1,'Innsbruck Ost','innsbruck-ost',NULL,0x00000000010600000001000000010300000001000000090000006A5EEBB24353274076218B093AAE4740E0390744E6C526401A53121D92A74740D4AA9057DDD326407CF0D55151A2474045973BD3070A2740A4CDFF393FA447400CEDA1E8E41C27406DA271B8DE9D474048E927EFB73B2740139A7C5DBD9E4740464A5803683327404A91E6A1449147408D1890E9C8882740013BD04196A147406A5EEBB24353274076218B093AAE4740);
+INSERT INTO wrregion VALUES (2,'Innsbruck West','innsbruck-west',NULL,0x000000000106000000010000000103000000010000000B00000044283AFB6D592640A0C4C95064A64740DF54B0AA670126408368434A1CAD4740B525072B24A025405598567E6AAB4740B7246A3A98C12540D30DAD24AEA04740ED88DF634A1B2640C0A6355786944740A51DB1A371432640D362D1E78683474025A7E0D014562640C5F2F54F658F4740D24279039E8A2640334C5DF9609447407B6403AD19732640C9C947192A99474043FB94656E982640F8DD7F2456A5474044283AFB6D592640A0C4C95064A64740);
+INSERT INTO wrregion VALUES (3,'Tirol - Oberland - Sonstige','tirol-oberland-sonstige',NULL,0x0000000001060000000100000001030000000100000013000000449BE7F2CA8D264094E874265594474066C0EF49987526401B323D76799947404E17D02B7A9B2640BA1A03E9A8A547400C70C37D7D5B2640902AE005A2A647407E45E3E628042640B04EAA3C55AD4740008AC65899032640C2398E5F0FB247408EE4C86D10CE2540240E2A3B0DBA47402666D72ED30D2540A832165195C5474029BD7F7A4E7224404A4A84ABBBA04740134F19EE99542440FD733A0A0D6E47402E68A554B9EF244061B2B0A6986E47401B95E77EA7EF2540AB3EF44A996147404F7D2A7EA7CD25404E1EB506E5874740BA845538F0932540679AB40F699A47407B8B9D8510C125406121245138A0474048F6B4559C182640BDAF2C9A069447408887F872B243264016249ACE3B824740A95FD293F458264099FB6F95328F4740449BE7F2CA8D264094E8742655944740);
+INSERT INTO wrregion VALUES (4,'Tirol','tirol',397,0x00000000010600000001000000010300000001000000110000008541E41D356B24405BF3A8AA88A24740405DEBBABA482440440D79EDE96B474038FD4F76F6ED2440E885AF29156E47400DF38A2EAA2E2440D8E4E11EC11D47401E5B9591542D25409F61DD6E1CE64640AEFA3A582E582640E129BA0990D34640980E4FDB4A022840A126FDB1C51947400FD2121D7BDF27408A8738FB1A424740BC828A7CC4032A40141F078A0A624740F54718062C392940456458C51B914740917F66101F4028405AA148F7739047402A8BC22E8A4E2840A30227DBC0A547408F537424974729408C3045B934B24740FFE6C589AF2E2940DB5031CEDFD84740C3D0ECA6F6FF254098B222D07DB94740D481D804DE0525402B719D4182C847408541E41D356B24405BF3A8AA88A24740);
+INSERT INTO wrregion VALUES (5,'Innsbruck','innsbruck',882,0x0000000001060000000100000001030000000100000007000000C629A95910A026409520B766EEA5474044F54EC1BE7826409016ADAD829947404073CF2F4E9126405523B2C9569447404CCF03FA7FD72640331311D3359B4740A003ABE2E719274002A481320A9D47400EC6DF30A0F22640871B659F08AA4740C629A95910A026409520B766EEA54740);
+INSERT INTO wrregion VALUES (6,'Liechtenstein','liechtenstein',1353,0x0000000001060000000100000001030000000100000005000000184BEE7D09142340DC9CEBDD50A347408EDBE59307F422402CEEB4E85D9A474046012FD54F082340D1125826128A474081E4B7C195422340AD5F4C641D874740184BEE7D09142340DC9CEBDD50A34740);
+INSERT INTO wrregion VALUES (7,'Seefeld, Leutasch','seefeld-leutasch',1354,0x00000000010600000001000000010300000001000000070000007EE057F7D8082640B95925BBD2B147407E638D1D8C092640984C4551BCAD4740EA031D27C65B264069BF382E55A74740D82999C75AA026405FB8784716A64740C5080E3E3BF22640EE68A5E02DAA4740D03CD717A5C22640C714718384B947407EE057F7D8082640B95925BBD2B14740);
+INSERT INTO wrregion VALUES (8,'Tirol - Unterland','tirol-unterland',834,0x000000000106000000010000000103000000010000000900000001DE02098AB72640899B53C900BE47408D541A1014282940B851C98EBBD74740163D5609394029404FDF9FD6E4B24740142F519C96482840747478CF7EA64740CDAC52C239392840C9D9192E9F8B474087A688D2AE292740D9F12DC24881474012610A3ED0372740143C0CB2319E47404F92AE997C1B27409604A8A9659D474001DE02098AB72640899B53C900BE4740);
+INSERT INTO wrregion VALUES (9,'Tirol - Oberland','tirol-oberland',833,0x000000000106000000010000000103000000010000000F000000B085DDD7E2902640348AE498509447407EDF552DB17726402A0A0173799947407EAE7B12349E2640AC330970D6A547405349DA857D5B26409D9ACA2406A74740F8008824AD06264098E820CE8BAD474088F9DD29B2052640D06FC9B633B24740452E9CA594D02540AB4551B043BA47406ADAC534D30D254075942E6238C64740853FC39B35702440B493C151F2A047400AE9E207E44D24403944ACC3306D47409FDAD2425EEF24405990DAC8606E47409E50527AF9F725405AD71E325A604740E6E786A6EC242640ED478AC8B06E47401759DD536C5A26407DA9864F208F4740B085DDD7E2902640348AE49850944740);
+INSERT INTO wrregion VALUES (10,'Vorarlberg','vorarlberg',395,0x000000000106000000010000000103000000010000000A00000038842A357B182340B5705985CDC44740F8EB8632F456234091C916FB63B34740413A994BEE142340739B73F355A34740D01026F4A94323400CEFE43B38874740D86322A5D9C42340350BB43BA4804740BDFDB968C8C8234093DFA293A5764740E2CD1ABCAF422440D76CE525FF6B4740D57954FCDF712440B83A00E2AEAE4740793A579412F22340B2101D0247C6474038842A357B182340B5705985CDC44740);
+INSERT INTO wrregion VALUES (11,'Osttirol','osttirol',835,0x0000000001060000000100000001030000000100000006000000806B61BAA33E284098DFA1A8A9814740A96611E8D0A92840E5412577C68F4740F15C50235E342940C97AF3AD7B90474020E1EE50A7FB294026044F1E79624740AD1B7A085DDA284014DAF3C5B3524740806B61BAA33E284098DFA1A8A9814740);
+INSERT INTO wrregion VALUES (12,'Südtirol','südtirol',836,0x000000000106000000010000000103000000010000000B000000EF46756547EF24401A31A971BC6D4740AE89DD8AF23624409A8959FDC31D4740F99FFCDD3B3225408E20956247E746405114E813795A26406D1ADB6B41D5464055DB4DF04DFB2740384BC972121A4740D00D4DD9E9D727407A3881E9B4424740BC581822A7CF28402618CE35CC504740CED3356D16192840E01EA60F5D8847401458F8730F66264000EB673D2A7947400E677E35070026405A1135D1E75D4740EF46756547EF24401A31A971BC6D4740);
+INSERT INTO wrregion VALUES (13,'Niederösterreich','niederösterreich',880,0x0000000001060000000100000001030000000100000007000000D847A7AE7C9E2D40356090F469594840177E703E75142E40626534F279E14740253B3602F1163040AD510FD1E8B447405A9F724C16F730406325E65949134840CA703C9F01D5304057B1F84D615B4840402AAE2D67152E40C87F14387D814840D847A7AE7C9E2D40356090F469594840);
+INSERT INTO wrregion VALUES (14,'Steiermark','steiermark',396,0x000000000106000000010000000103000000010000000900000092535411EE702B40C503CAA65CC147406A15FDA199272C40AC915D6919834740F1FFB7B655FD2D402CB9E44C24764740EAE5EBD5AA212E4016BD3AEF4A5447407007EA9447033040FD87F4DBD7574740E882FA96392D3040651A4D2EC6BC4740641EF98381CF2F40BFB9BF7ADCF1474028D2FD9C82AC2E4025ADF886C2F7474092535411EE702B40C503CAA65CC14740);
+INSERT INTO wrregion VALUES (15,'Wien','wien',NULL,0x00000000010600000001000000010300000001000000050000000D739619E8373040607769C4F22248402BBF245D488D3040D026EEFB562948408FC95148339830401F4F2B085C1248400D739619E8373040492CC8387C1148400D739619E8373040607769C4F2224840);
+INSERT INTO wrregion VALUES (16,'Bayern','bayern',NULL,0x00000000010600000001000000010300000001000000100000007F22BAE6390725402C66160056C947403E1B106151FC254097261FCD40BA4740178AA5FBEB412940D3B73A96C9DB4740F7BBC65F50FB2940D072331018C14740046C3B68698929409B16C272D21848409CCCEEFEBCA02B407B1E67F556624840B7282B8C6EE5274086ACA3686032494040F120F23A8022409B340D40651849405B4C4FA8C115224017E0A0D8A60A49402B3DF289802722409BC2638CA9CC48407F4D6FD5E9382440D3C5C429B4CB4840A3750AFBDE3B24408AF3F1BAEBDA4740ABE891217A1523400CC137C783C5474069658512BBF423406098ADFC01C8474025241928668824407DE4D7D6BCAB47407F22BAE6390725402C66160056C94740);
+INSERT INTO wrregion VALUES (17,'Baden-Württemberg','baden-württemberg',NULL,0x0000000001060000000100000001030000000100000006000000B127411413D7204020A94E8B75CE484093FE9717F324244075E867533AC8484062822B9017342440EEFD487BCCDB47403173427EFF0F23409A3118EE3EC74740ECC8776312031D4070E4FC428AD14740B127411413D7204020A94E8B75CE4840);
+INSERT INTO wrregion VALUES (18,'Salzburg','salzburg',839,0x000000000106000000010000000103000000010000000B000000374B19BBD835294087533E2435D94740FF90FD78804E29406C8A9EAACAB14740F5B100B44C5728403EACE35B98A4474047E9F8F782482840DD0D0C0403924740A28014BC783F2940D4328FC3839247406F1086464D9C2B4032D574B3527947408894C737561A2C409D0F56024584474067B062C68D962A408D42415DBA0248404682BB5436BA29404F6C1BC13B024840EE93DF52B6062A408B5B9EA87EBD4740374B19BBD835294087533E2435D94740);
+INSERT INTO wrregion VALUES (19,'Slowenien','slowenien',NULL,0x00000000010600000001000000010300000001000000070000002D061EF2441E2D40CFBE2FACB73447405D79B28D212E2B40D615ACBA3F4447406D80D55BAD702B40805098C36FB64640750C724971802E404E4B467179B746406A3B83E41B5F30405D3BDBCB8F584740A26F40FC91352E40823AC624DC5347402D061EF2441E2D40CFBE2FACB7344740);
+INSERT INTO wrregion VALUES (20,'Kärnten','kärnten',837,0x0000000001060000000100000001030000000100000009000000750BDA3ED84229402F301B7242914740AD60BC9137A22B404C0AA151AC7647409FAFF7EBCA1C2C4092340EB27D8147401A785CAB2CF62D4007541CABE7744740BB59A26EAA192E40DFA2AD06FB524740C48D4C8165152D4067CC44EFFC354740B6365DB55A3529405DA101AC4855474015E6B371060D2A4043EAFE20F0614740750BDA3ED84229402F301B7242914740);
+INSERT INTO wrregion VALUES (21,'Oberösterreich','oberösterreich',879,0x000000000106000000010000000103000000010000000800000095A07591B896294014B8525B93184840F13185094CB42940AD76C859D404484009796A8257A52A40681CABE89703484004D26A348B682B407AF3EB6A3FC247402B0C2A3EA7F72D40D531C9D2CCED47409B4B5CD292942D40167D946EDA5748405A29C44D01B12B40B1E1D1931862484095A07591B896294014B8525B93184840);
+INSERT INTO wrregion VALUES (22,'Schweiz','schweiz',881,0x000000000106000000010000000103000000010000000D0000001DD5479E058B1740FE4F440C311E474051552C2D34F01C402E6BCAC7E5CC4740690D9653300C23406F160D94B0C547400EC3461A724E23400E2603AEB0B34740834DDAA4F2F222408244FAD37F9A4740EC0A34688007234069356E29FD89474011CF2260EDC123400434569B4C804740ECBB442DD8C3234066756E6F2E7647402566EF00E34324402F91AB75FB6A474028635003AFED24404B4C4642C06D474078C8FE60B025244007C205F9441F47402A860103D8771C40DBD7D27878F146401DD5479E058B1740FE4F440C311E4740);
+INSERT INTO wrregion VALUES (23,'Tschechien','tschechien',NULL,0x0000000001060000000100000001030000000100000008000000EAF2A32B295A2D408193ACB84F7349400B658642030E3340C9DF516D9BD3484045DC3786BAF330407DE76AB70C5A48407FD3D26C7D142E40C4A7EAE1E0834840B6A990AECA962D40CB09FF58065B484096AF934F2EB62B40290D6BC18165484085B0A1265965284017419C13E41C4940EAF2A32B295A2D408193ACB84F734940);
+INSERT INTO wrregion VALUES (24,'Ötztal','ötztal',NULL,0x00000000010600000001000000010300000001000000080000009CC95D5737F32540BCC11D3FAE61474078C6E8CE0A222640DF5C0DBDE46E4740815A8C8907432640163C1745EB81474051AFBCF0CD17264083814CCAE9934740D84885BDC9C025402B8478F015A0474032DBEAB72D95254051ECBA4C509A47402F47AD52E3CE25401259F631198847409CC95D5737F32540BCC11D3FAE614740);
+INSERT INTO wrregion VALUES (25,'Stubaital','stubaital',NULL,0x00000000010600000001000000010300000001000000060000001DEBBF45E15C26403409F2DB9C8E47403B75DE2014D726405BEC84D7A79A4740970D690A65CE26406CC5D6A7D09247405240B40A3DB826403472A080338A474002FB55847238264094BC3992147947401DEBBF45E15C26403409F2DB9C8E4740);
+INSERT INTO wrregion VALUES (26,'Wipptal','wipptal',NULL,0x0000000001060000000100000001030000000100000007000000B6EB946E953926404D7362DB9D7847402E90E0B4E5B92640225D6BF4FF8947404420B805F4D026409DF8A234C1924740BD3C6400D4D826406483D470D59A4740FEF5FCA86A312740E9D1DBB4289D4740F95FB0EDE01F2740D20FF08B10774740B6EB946E953926404D7362DB9D784740);
+INSERT INTO wrregion VALUES (27,'Innsbruck Mittelgebirge','innsbruck-mittelgebirge',NULL,0x00000000010600000001000000010300000001000000070000005371055F54922640A8E1CDF4D39447407706D462BED72640034BAF967D9B4740F5493941EA172740F1B9D220339D4740639830289F042740136F7CB588A347402CD54D7B3F8C26406EBB4DC94C9F47403A4B758ED77A2640D639961A889947405371055F54922640A8E1CDF4D3944740);
+INSERT INTO wrregion VALUES (28,'Nordtirol','nordtirol',838,0x000000000106000000010000000103000000010000000C0000008864C8B1F56C2440A2B8E34D7EA14740405DEBBABA482440440D79EDE96B474038FD4F76F6ED2440E885AF29156E4740BBFCDC6762FC254027BE116C365F474042DE8519926326409E391DCBB6794740FC91B7EB1D3C28407911D6BB248B47402A8BC22E8A4E2840A30227DBC0A547408F537424974729408C3045B934B24740FFE6C589AF2E2940DB5031CEDFD84740B96740EBB4FA25408F56ECF831B94740E10D6954E00C2540486E4DBA2DC747408864C8B1F56C2440A2B8E34D7EA14740);
+INSERT INTO wrregion VALUES (29,'Schwaz/Zillertal','schwaz-zillertal',NULL,0x0000000001060000000100000001030000000100000006000000B75C3EF7601427402766C4F06BC0474014FB042847E92740A08381CBBF8947405D066AE884432840D902449526A94740B9D585DEF9C027407E39778B1CC84740B9D585DEF9C027407E39778B1CC84740B75C3EF7601427402766C4F06BC04740);
+INSERT INTO wrregion VALUES (30,'Kitzbühel','kitzbühel',NULL,0x000000000106000000010000000103000000010000000800000000307DD169522840D902449526A94740F18EAA2FF3302940A0E89A74F1B24740CA30C1686D1F29408750DEE4CACF4740BFE3272046A82840D82D9084E2C94740712755923A8528402F5247BD17BB47400C27B3C6B81E28408B149F550EB647400C27B3C6B81E28408B149F550EB6474000307DD169522840D902449526A94740);
+INSERT INTO wrregion VALUES (31,'Kufstein','kufstein',NULL,0x0000000001060000000100000001030000000100000005000000D5CAC2E93DCD274001E451B5F6C74740108DD649D91A28403F088812F9B5474064BEA8D6F87F284064D3DA1521BC4740C729F047C7AB284056880721B6D14740D5CAC2E93DCD274001E451B5F6C74740);
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2017-07-21 17:09:39
diff --git a/tests/testdb.txt b/tests/testdb.txt
new file mode 100644 (file)
index 0000000..d9e64f0
--- /dev/null
@@ -0,0 +1,18 @@
+How I crated the testdb.sql
+
+Work on a copy of the philipp_winterrodeln_wiki database:
+
+select * from philipp_winterrodeln_wiki.wrreport order by id desc limit 10;
+delete from wrreport where id < 19587;
+select * from wrreport;
+update wrreport set author_ip = null, delete_person_ip = null;
+update wrreport set author_username = null where author_userid is null;
+select * from wrreport;
+select * from wrregion;
+select * from wrsledruncache;
+select * from wrsledruncache where page_id = 926 or page_id in (select page_id from wrreport);
+delete from wrsledruncache where page_id != 926 and page_id not in (select page_id from wrreport);
+select * from wrsledruncache;
+
+
+mysqldump philipp_winterrodeln_wiki --skip-extended-insert --tables wrreport wrsledruncache wrregion --skip-add-locks --skip-disable-keys --skip-quote-names --hex-blob > testdb.sql
diff --git a/wrfeed/test.cfg b/wrfeed/test.cfg
new file mode 100644 (file)
index 0000000..87c84fb
--- /dev/null
@@ -0,0 +1,4 @@
+DEBUG = False
+SECRET_KEY = b'\x00Y:\xfc\xc4^Q;\x1f\x1d\xe8\xd1\xc4L\x04*\xdd;4\xb5\x00\x91\xe6\xf9'
+DATABASE_URI = 'mysql://philipp@localhost:3306/philipp_winterrodeln_wiki_wrfeed_test?charset=utf8&use_unicode=1'
+FEEDENTRYLIMIT = 150
diff --git a/wrfeed/tests/__init__.py b/wrfeed/tests/__init__.py
deleted file mode 100644 (file)
index 456f680..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-"""Pylons application test package
-
-This package assumes the Pylons environment is already loaded, such as
-when this script is imported from the `nosetests --with-pylons=test.ini`
-command.
-
-This module initializes the application via ``websetup`` (`paster
-setup-app`) and provides the base testing objects.
-"""
-from unittest import TestCase
-
-from paste.deploy import loadapp
-from paste.script.appinstall import SetupCommand
-from pylons import url
-from routes.util import URLGenerator
-from webtest import TestApp
-
-import pylons.test
-
-__all__ = ['environ', 'url', 'TestController']
-
-# Invoke websetup with the current config file
-SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
-
-environ = {}
-
-class TestController(TestCase):
-
-    def __init__(self, *args, **kwargs):
-        wsgiapp = pylons.test.pylonsapp
-        config = wsgiapp.config
-        self.app = TestApp(wsgiapp)
-        url._push_object(URLGenerator(config['routes.map'], environ))
-        TestCase.__init__(self, *args, **kwargs)
diff --git a/wrfeed/tests/functional/__init__.py b/wrfeed/tests/functional/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/wrfeed/tests/functional/test_berichte.py b/wrfeed/tests/functional/test_berichte.py
deleted file mode 100644 (file)
index 693a9f2..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-from feed.tests import *
-
-class TestBerichteController(TestController):
-
-    def test_index(self):
-        response = self.app.get(url(controller='berichte', action='index'))
-        # Test response...
diff --git a/wrfeed/tests/test_models.py b/wrfeed/tests/test_models.py
deleted file mode 100644 (file)
index e69de29..0000000