added some parser tests
authorFlorian Schweikert <kelvan@logic.at>
Tue, 8 Mar 2011 21:32:08 +0000 (22:32 +0100)
committerFlorian Schweikert <kelvan@logic.at>
Tue, 8 Mar 2011 21:32:08 +0000 (22:32 +0100)
tests.py

index 85d1709..244ae67 100644 (file)
--- a/tests.py
+++ b/tests.py
@@ -1,10 +1,11 @@
 import unittest
 from wlSearch import Search
 from datetime import datetime
+from parseHtml import Parser, iParser, ParserError
 from BeautifulSoup import BeautifulSoup
 
 
-class FetchTests(unittest.TestCase):
+class FetchTest(unittest.TestCase):
 
     def setUp(self):
         origin = 'Karlsplatz'
@@ -21,5 +22,41 @@ class FetchTests(unittest.TestCase):
         self.assertTrue(len(self.bs.findAll('div', {'class': 'data_table tourdetail'})) > 0)
 
 
+class ParseTest(unittest.TestCase):
+
+    def setUp(self):
+        origin = 'Favoritenstrasse 9'
+        destination = 'Rathausstrasse 6'
+        ot = dt = 'address'
+        dtime = datetime.now()
+        dtime = dtime.replace(hour=15, minute=0)
+        s = Search(origin, destination, origin_type=ot, destination_type=dt)
+        self.p = Parser(s.get_html())
+
+        origin = 'Foobar Strasse 123'
+        destination = 'Bazgasse 321'
+        s = Search(origin, destination, origin_type=ot, destination_type=dt)
+        self.invalid_parser = Parser(s.get_html())
+
+    def test_overview_shouldFindMultipleItems(self):
+        # TODO Replace with assertGreater in new python version
+        self.assertTrue(len(self.p.overview) > 1)
+
+    def test_detail_shouldFindMultipleItems(self):
+        # TODO Replace with assertGreater in new python version
+        self.assertTrue(len(self.p.details) > 1)
+
+    def test_detail_shouldFindMultipleStations(self):
+        # TODO Replace with assertGreater in new python version
+        self.assertTrue(len(self.p.details[0]) > 1)
+
+    def test_parser_overviewAndDetailsShouldHaveSameLength(self):
+        self.assertEqual(len(self.p.details), len(self.p.overview))
+
+    def test_parser_shouldRaiseError(self):
+        # TODO Replace with expectedFailure decorator in new python version
+        self.assertRaises(ParserError, self.invalid_parser._parse_overview)
+
+
 if __name__ == '__main__':
     unittest.main()